SSDM - Sibilo Software Development Model

Search
(by Google)
     


Technology

Architecture

In the previous section, we saw that prototype user interfaces are tied to the UML diagrams somehow. This intermediate step is where the magic happens. From the UML diagrams, Sibilo.SDE automatically generates .Net code and database, which work together right away with the help of Sibilo’s Object/Relational Mapping layer, Sibilo.DBL.

The diagram below illustrates SSDM’s code generation architecture. The items in the green boxes are generated automatically by Sibilo.SDE; therefore the project automatically becomes a 4-tier application.

Apart from the usual advantages of modular software with well defined interfaces, this architecture is intended to allow any of the tiers to be upgraded or replaced independently as requirements or technology change. [6] The level of flexibility offered by SSDM is a major benefit to the business. The solution can be stand alone or can have client/server architecture. The database can be in Oracle, SQL Server, MS Access, or any other DBMS supported by ADO.NET. The solution can be a web application, a Windows application, a console application, a Web Service or a Windows Service.

SSDM architecture also leaves the developer with the task to develop only the User Interface and additional Business Logic - elements which are absolutely vital to the success of the project. Besides time savings, this has major benefits during testing.

Object/Relational Mapping

Sibilo.DBL is SSDM's database abstraction layer. It facilitates Object/Relational mapping and hides the database running in the background. It also encapsulates some of the business logic for simple operations. Here are some of its features:

Sibilo.DBL

  • implements the Data Mapper and Active Record design patterns
  • maps .Net classes to any ADO.NET supported database schema
  • maintains the referential integrity of the database
  • supports the most important OO concepts such as class modelling, generalization (inheritance), and associations (composition/aggregation)
  • provides a clean interface and common methods for objects, e.g., Add, Get, Remove, Update, Search, Count, Exists, etc.
  • developer can add their own attributes and operations using Visual Studio or any plain-text editor
  • supports the creation, retrieval and searching of run-time attributes by the end user
  • supports enumerations
  • fully serializable (XML/binary) classes and associations, supporting Web Services (SOAP) and .Net Remoting
  • handles the encryption/decryption of database records for selected attributes using TripleDES algorithm for symmetric encryption (16-byte key)
  • handles database synchronisation attributes such as Globally Unique Identifier for each record, Create/Last Updated Dates, etc.
  • ensures consistency of database and code versions
  • can group classes into modules and keep modules on separate databases, whilst seamlessly maintaining object relationships (associations)
  • has error-handling
  • supports multiple applications using the same schema to be hosted on a single database, unaware of each other - provides easier backup and shared hosting
  • facilitates the use of the navigational approach of OOP rather than the declarative approach of the relational model, while optimising SQL queries
  • wholly written in Native .Net
Turing Test: If one interrogates a human being and a machine by instant messaging and can't reliably tell which is which, should one assume that the machine thinks? Similarly, does Sibilo DBL turn a relational database (RDBMS) into an object-oriented database (ODBMS)?

Hundreds of thousands of people regularly use Sibilo DBL-driven applications, ranging from community web sites to enterprise-level compliance solutions. It is therefore a proven, well-tested application which has been honed to be virtually bug-free. Consequently, the testing time is significantly reduced and project deployment becomes virtually hassle-free.

Code and Database Generation

Sibilo.SDE is the development environment of SSDM. It automatically generates code (object libraries), databases, and the adapters for these to work together. Here are some of its features:

SSDE Screenshot 1    

SSDE Screenshot 2

A project can be separated into modules where each module has a UML diagram associated    

Databases are created/updated for each module or a group of modules


SSDE Screenshot 3

    

SSDE Screenshot 4

.Net code is generated

    

Solution is compiled

Sibilo.SDE builds the object libraries and databases, which developers can expand. This allows them to create multilingual thin-client graphical user interfaces that work for distributed multiple database environments.

Examples

The following code and database are automatically generated from the UML diagram in the previous section.


VB.Net Code

MS SQL Server Database


Copyright © 2002-2007, Sibilo (UK) Ltd. All Rights Reserved. SSDM is a trademark of Sibilo (UK) Ltd.