Softomate

The Requirements.

We need a number of web pages that will help us to assign a tasks between a number of companies and their departments. We need a page where we can enter a list of tasks with their description and duration. Then we need to manage the information about persons and their tasks.  Each person should have an e-mail address so we could easily notify him. The information need to be stored within one database.

This application is quite important for us because the task assignment system we use now do not allow two persons to work with it simultaneously. We need something that can be easily accessed from anywhere in our network (Intranet is a plus).

The requirements were structured and presented in following form:

Name of the project:
Task management.

Objective:
The objective of this online application is to provide a simple to use web interface for tasks assignment.

Functional requirements:

  • Task management (creation of a task, modification)

  • Companies List. (New company entry, modifications)

  • Departments Entry

  • Employees entry.

  • Assigning a task.

Non-functional requirements:

  • The pages has to be seen under IE 4.0+ and NS4.0+.

  • All information should be stored within MS access database.

The regular estimates for this project were produced basing on function point metrics:

  • Number of interfaces: 10

  • Number of master files : 4

  • Number of inputs: 0

  • Number of output: 0

The size of project in Functional points: 10*10FP + 4 *10FP = 140FP. According that the platform is known to the development team the final FP is reduced by 25% and thus the final estimates in functional points are: 105FP. Finally the project was estimated as 84hr taking into account that implementation of each Functional point within Softomate takes 0.8 hr.

We decided to use CFBL to implement this project.

We started with object decomposition. And then just applied CFBL specific scripts for DB production and CFML source code generation. The step-by-step production schedule with a timeline is presented below.

 

14:16

The objects were captured from the requirements and documented:

Object: Company
Description: Object that stores all information about a company.
Attributes: Name, Contact information

Object : Department
Description: Object that captures the department characteristics.
Attributes: Location, Name, and Company

Object : Employee
Description: Object that represents employee from specific department.
Attributes: Name, Contact, and Department

Object: Task
Description: The information about a task.
Attributes: time schedule, task description.

Object: Task Assignment
Description: object that maintains an information about assignments of the task.
Attributes: Comments.

14:29

The analysis object model was produced in MS Visual Modeller and saved into WEB_Task.mdl.

14:48 The Data Definition language generator was used to produce WEB_Task.sql out of WEB_Task.mdl.
14:50

The MS Access database was created by executing WEB_Tasks.sql on a empty database.

14:58

The Code for business layer was generated automatically directly from model file WEB_Task.mdl.

Total 16 files were generated. The total size is 62K bytes.

15:00

The code for gui was generated basing on UML definition from WEB_Task.mdl and basing on predefined GUI Prototype "DHTML advanced" specified in .GUP file (Softomate internal format for GUI prototype definitions containing the style for the result pages and the way to present the data).

Total 44 files were generated and the size was 66K bytes.

15:20 The custom header and footer scripts were written to fit into the layout of the site.
15:45 The application was installed on our server.

Total time for production is: 1h 29min
Total code size: 130K bytes.
Total number of source code lines: 1760

Conclusion:

As it can be seen usage of CBFL technology can drastically improve the speed of production. In a sample described above the production was 50 times faster then regular one. That is because of:

  • CFBL automatically applies the relational database - object mapping patterns, transaction mechanism pattern and GUI/ object mapping strategies.

  • The code produced is easily maintainable and extendible because of well defined algorithmically structure.

  • The final application do not need to be tested.

The efficiency of such an approach is dependent on how many objects your application uses and for 40 objects application it can be much more. The final application produced using CFBL of course requires optimization and a number of GUI improvements that still need to be done manually. But at least you get fully functional prototype for the application that brings you tangible experience and it is a big step towards a project successful completion

Installed version of the sample application Task management sytem.

Copyright (c) by Softomate Inc. 1998-2000.
Last revision Oct 20, 2000.


630090, P.B.160, Novosibirsk, Russia   Tel.: 007 902 987 00 73
www.softomate.com   Fax: 001 801 457 88 20
17:17 Feb 21 2000