Functional Specifications

If you don't know what you require and don't document it, you're going to get whatever someone thinks you require. Process engineers sometimes mistakenly believe control engineers should be able to develop automation/control logic based on the content of piping and instrumentation diagrams (P&IDs).

By Mark T. Hoske June 1, 2006


Batch and process control

Software development

Architectures and objects

System analysis or design

System integration

Sidebars: Building a functional specification

If you don’t know what you require and don’t document it, you’re going to get whatever someone thinks you require. Process engineers sometimes mistakenly believe control engineers should be able to develop automation/control logic based on the content of piping and instrumentation diagrams (P&IDs). Fortunately, tools can help develop functional specifications—detailed blueprints for creating automation and related programming.

With sufficient detail, functional specifications can help move and guide a project from initial specifications through testing, simulation, construction, training, commissioning, operation, maintenance, upgrades, and/or decommissioning. In modular form, they can save time, serving as a base for the next project, even if only partially similar.

Prevent feature creep

Functional specifications can help internal projects run more smoothly. When external help is needed, some contractors may offer tighter estimates based on level of detail. More time and detail upfront also can help prevent changes—sometimes known as ‘feature creep’—later in a project that could push it beyond original requirements.

Too much detail is not good either. Just like a project that can grow beyond bounds, a functional specification can also get out of hand. The Electric Power Research Institute recommends the following elements in defining the scope. EPRI says the functional specification should include specific information about each functional requirement of the software, and describe for each functional requirement:

Purpose —What the function is intended to accomplish;

Input —What inputs will be accepted, in what format they will arrive, their sources, and other input characteristics;

Process —Steps to be performed and algorithms, formulas, or techniques to be used (software implementation details are not included); and

Output —Desired outcomes, such as the output form (report layout), the destination of the output, output volume and timing, error handling procedures, and units of measure.

Software usability remains a consideration and should be included in functional specifications, EPRI says; examples include clear error messages, input range checking as entries are made, and order of choices and screens corresponding to user preferences.

Standard modularization

In creating a functional specification, use of standards such as ISA-88 (Batch control, useful beyond batch) and ISA-95 (Enterprise-Control System Integration) can:

Make defining and quoting easier;

Help establish automation objectives;

Modularize physical and procedural entities of a process;

Deliver more flexible automation;

Apply in any automation environment (not just batch or continuous process); and

Unify and clarify terms to improve communication.

Functional specifications can serve as detailed blueprints to create automation and related programming. In best form, they’re modular, with re-usable elements.

In reviewing a specification, check for the following points, according to David Longstreet of Longstreet Consulting, in his white paper, ‘How to Read a Functional Specification.’ He suggests asking: What is the application state when the functional specification begins and how is the information processed? Does the workflow include logical groupings of information (single or multiple events)? Will information be imported, stored, processed, and exported—and how? Are algorithms and calculations described? Are all functions described and requirements verified? Are scenarios and examples consistent with workflow, start to finish?

Tools to help

Creating a functional specification doesn’t have to be a from-scratch event. Various software tools are available to help generate, maintain, and modify functional specifications.

Microsoft Visio, for instance, can be used to create high-level process flows, map physical processes, and help create functional specifications, carrying over information from Visio electrical or piping diagrams.

Spec-Soft SpecPFS-Definition, a functional specification and documentation tool, includes extended simulation capabilities. It has a set of engineering tools used to specify and simulate procedures for batch automation and is ISA-88 compliant. It generates enterprise-wide standards for equipment and procedures, manages changes in designs and specifications, and produces a variety of specification documents.

The software allows building:

Equipment and procedure classes, including standards, templates, building blocks, defining control module, equipment module, and unit class, with internal logic, along with high-level procedures and recipe classes.

An ISA-88 physical model by importing design data from P&ID files, spreadsheets, and databases for a modularized physical plant in an object-oriented model;

Detailed phase logic to define equipment phase sequencing via elaborate SFCs (step charts); define activation, alarms and requests; visualize flow paths on P&ID; and define and edit conditions, equations, and control loops.

Recipes, formulas, sequencing (S88.02 PFCs), defined procedural interactions, such as synchronize, allocate, couple, etc.; Gantt chart production for recipes and evaluation of different execution strategies.

It also helps:

Manage changes by maintaining a ‘live’ specification over the plant’s lifecycle.

Enhance plant utilization; look at conflicts and interactions, better scheduling, and rule-based specification review.

Generate and maintain specification document in Microsoft Word, driven by a database, with a smart wizard.

Create and track interfaces to related documents and software.

Beyond the help a detailed, living functional specification can provide, related software tools can help reduce automation system engineering and programming time to lower cost and improve time-to-market, help with compliance, improve accuracy, and cut programming and maintenance time.

Additional resources Links to other resources on functional specifications include the following.

A related category in the Control Engineering buyer’s online guide, at , is “Computer Software, Product Selection and Specification,” which returns 35 companies at .

Guidelines for Functional Specifications

ISA-88 Batch Control

ISA-95 Enterprise-Control System Integration

How to read a functional specification

Estimating Process Control Implementation Made Easier

Free software helps with functional specifications

Building a functional specification

Clarity is required in construction of a functional specification, according to Spec-Soft; definitions should include:

Any new types of items;

Connections between items;

Equipment modules;

Units and related state transitions;

Processes (state transitions, phase, and related objects);

Equipment module and unit management; and

Procedures, conditions, and interlocks.

Author Bio: Mark Hoske has been Control Engineering editor/content manager since 1994 and in a leadership role since 1999, covering all major areas: control systems, networking and information systems, control equipment and energy, and system integration, everything that comprises or facilitates the control loop. He has been writing about technology since 1987, writing professionally since 1982, and has a Bachelor of Science in Journalism degree from UW-Madison.