top of page
Search

Specification-Only Method Overview

  • Writer: rob crewdson
    rob crewdson
  • Oct 19, 2023
  • 5 min read


The method for the developer and the client is simple:


Wireframe the user interface - PC, Pad, Phone.

Give all dynamic data items an identifier, eg. “Supplier”.

Specify a source for each dynamic item eg. “Supplier.Name” (from database).

Specify actions for buttons.

For example, this form lists orders for a nominated supplier and customer:


Orders.form

Supplier : Supplier.Name

Customer : Customer.Name


List each Order

Ordered : Order.OrdDate(24) (24) shows 24 hour time

Confirmed : Order.Confirmed(24)

Delivery Date : Order.DelDate(d) (d) shows short date, eg. 20/11/2023

Shipped : Order.InvDate(d)

Amount : Order.Total(0.00) (0.00) shows amounts like 1234.90

Paid : Order.Paid(0.00)

Notes : Order.Notes

[Review Order] Load OrderItems for this Order

>OrderDetails.form display the details for the order


[New Order] Load all Products

RestoreSavedOrder customer might have an unfinished order

>RetailShop.form if SavedOrder.Id = Nothing no saved order

CalculateOrderTotals

>Review.form review saved order


[Back] >Customer.form

End of Orders.form

Dynamic items have been identified on the form (or page) and associated with a source, eg:

“Supplier : Supplier.Name” means “Supplier” is bound to “Supplier.Name” in database.

Actions when a button is clicked are specified, for example:


[Review Order] Load OrderItems for this Order

>OrderDetails.form display the details for the order


Comments are in italics. Navigation is indicated by “>”. Database requirements fall naturally out of the sourcing process. The need for temporary items and processes will be identified, eg:

CalculatePrice

If Customer.Type = ‘Govt’

Price = Product.Price - GovtDiscount

ElseIf OrderTotal > 1000

Price = Product.Price - VolumeDiscount

Else

Price = Product.Price

EndIf

End of CalculatePrice


When all of the user interface has been wireframed, all observable data items have been sourced and all processes have been specified, the specification is ready for approval by the client and automated building of the application including creation or update of any database schemas.


The application is immediately ready for testing or general availability in the host environment. Test data can be automatically generated.


Early projects used Ms Word to directly create the specification; this option always remains available. Later projects enabled data sources and action statements to be edited interactively within the UI designer and used a project editor to manage projects and guide the development of the specification. A project editor provides error and completion checking; ensures all data items are uniquely identified and properly sourced; catches typos; validates specification statements; checks consistency with databases and validity of files and images; and provides context sensitive, interactive help.


The system specification can be generated from the editor at any time. The specification is the basis of the contract with the client and the application is always built from the specification.

Examples of specifications can be seen under Projects at www.specificationonly.com . The simple To-Do project example demonstrates how a useful running application can be created from wireframes with almost no specification language at all. The specification-only method uses inference where it can to automate the building of an application, however, a specification is meant to be specific with no ambiguity. It is not sufficient to say “calculate the price”, the calculation must be specified and approved by the client.

So it’s a simple but disciplined process for the developer and the client. Of course, there’s a lot going on under the covers to make this simple process work.

Specification Language:

The proof-of-concept specification language grew from the original manual specification language that had proven so successful. Over time it has been improved and extended to enable clients to use their own domain specific language. The proof-of-concept language has proven to be effective in delivering client applications and being acceptable to all stakeholders, however, there always improvements to be made.


The underlying structure of the language should support a curated core while enabling domain experts to extend the language to meet specific requirements using a managed language extension tool and repository.


Tools:

Intelligent wireframe designer


Project editor

  • project management

  • user interface refinement

  • contextual user help

  • process specification

  • database review & management

  • file management

  • specification generator

  • application builder

  • generation of test data

Specification language manager


The proof-of-concept application builder generates very small driver files that are interpreted by purpose-built native host engines to execute the applications. Engines were created for Windows and Cloud (Azure) hosts. An alternative architecture could generate java from the specification and use java virtual machines to execute the application.

The proof-of-concept used Balsamiq Mockups for wireframes. Very easy to learn and use but needs work to make it the ideal specification-only tool.

Host Environment:

The natural hosting environment for hosting specification-only systems is the cloud. This could be a public cloud like AWS or Azure or Google; or a private cloud fully managed by a large enterprise or government agency. Specification-only systems, however, are not limited to cloud hosting, all popular in-house and native device environments can also act as hosts. A significant advantage of using a major public cloud is that you can get best available security, reliability and scalability by default.


The specification-only execution environment allows you to get the best deal from the best host provider by enabling you to move systems or sub-systems to a new host.


Approval:

Ideally, all of the specification should be formally approved by the responsible end-user(s) or client representative(s). Where the developer is leading the project and is the project technical expert, the optional and more technical sections (Lexicon and Data Storage & Access) can be signed off by the project leader/facilitator.

Our experience is that the client representatives are comfortable in approving the specification and retain a good understanding of what will be delivered.


Ecosystem:

Specification-only systems will always operate and interact in a world that includes a wide variety of past and present technologies. Ease of integration with other applications and use of commonly used services and devices via simple specification language is vital.


There are an infinite variety of system requirements that may be confronted by a developer. The core specification language will frequently meet all of the system requirements, however, there will be occasions where it is necessary to extend the language to enable the client stakeholders to use the natural language of their domain using either the optional Lexicon within the specification or the language manager for storage in a domain repository.


Developers will find that their existing skills transfer easily to the Specification-Only method of development. They will enjoy a more creative, productive and satisfying experience.


Current and future program coders will continue to prosper within and outside the specification-only world. Within the specification-only environment, program coding will still be required to build tools, unique processes, language extensions, integrations to legacy systems, etc. For DBA’s and application product specialists it will generally be business as usual.

Software system consumers will experience a more consistent, professional process that gifts them genuine control of their software applications and budgets from initial contract through to ongoing maintenance of the running systems.

Software development and professional services organisations can remove risk and increase profit while providing a better service for their clients.


IT departments can focus on providing rock solid infrastructure and security while optionally outsourcing much of the business application development to business analysts with both technology and business domain knowledge.


For specification-only tool and platform providers, it’s happy days beginning with cloud-based services for UI design, project editor, language management and optional run-time services.


---------------------------------------------------------------------------------------------------------------------------


 
 
 

Recent Posts

See All

Comments


bottom of page