BSI PD ISO/IEC TR 14369:2018
$215.11
Information technology. Programming languages, their environments and system software interfaces. Guidelines for the preparation of language-independent service specifications (LISS)
Published By | Publication Date | Number of Pages |
BSI | 2018 | 78 |
This document provides guidelines to those concerned with developing specifications of information technology services and their interfaces intended for use by clients of the services, in particular by external applications that do not necessarily all share the environment and assumptions of one particular programming language. The guidelines do not directly or fully cover all aspects of service or interface specifications, but they do cover those aspects required to achieve language independence, i.e. required to make a specification neutral with respect to the language environment from which the service is invoked. The guidelines are primarily concerned with the interface between the service and the external applications making use of the service, including the special case where the service itself is already specified in a language-dependent way but needs to be invoked from environments of other languages. Language bindings, already addressed by ISO/IEC TR 10182, are dealt with by providing advice on how to use the two documents together.
This document provides technical guidelines, rather than organizational or administrative guidelines for the management of the development process, though in some cases the technical guidelines can have organizational or administrative implications.
PDF Catalog
PDF Pages | PDF Title |
---|---|
2 | National foreword |
9 | Foreword |
10 | Introduction |
13 | 1 Scope 2 Normative references 3 Terms and definitions |
16 | 4 Abbreviated terms 5 Overview 5.1 Services, interfaces, service providers and service users 5.2 Information technology services |
17 | 5.3 Services and language independence |
18 | 5.4 Language-independent specifications |
19 | 5.5 Problems of language dependence and inbuilt assumptions 5.5.1 General 5.5.2 Representational assumptions 5.5.3 Implementation assumptions |
20 | 6 Guidelines on strategy 6.1 General 6.2 General guidelines 6.2.1 Guideline: Dependence of the interface on the service 6.2.2 Guideline: What to do when there are interoperability, concurrency, or time constraint issues 6.2.3 Guideline: Use of marshalling/unmarshalling |
21 | 6.2.4 Guideline: Recruiting expertise from a variety of backgrounds 6.3 What to do if starting from scratch 6.3.1 General 6.3.2 Guideline: Avoidance of implementation assumptions 6.3.3 Specifying the service in language-independent form |
22 | 6.3.4 Specifying the interface to the service in language-independent form 6.4 What to do if starting from an existing language-dependent specification 6.4.1 General 6.4.2 General guidelines |
24 | 6.4.3 Converting an existing language-dependent specification of the service into language-independent form |
25 | 6.4.4 Converting an existing implicit interface into an explicit language-independent interface |
26 | 6.4.5 Specifying a language-independent interface to a service whose specification is language-dependent |
27 | 7 Guidelines on document organization 7.1 General 7.2 Guideline: The general framework 7.2.1 General 7.2.2 Checklist of parts for inclusion |
28 | 7.3 Guideline: Production and publication 7.4 Guideline: Document organization when starting from a language-specific specification |
29 | 8 Guidelines on terminology 8.1 General 8.2 Guideline: The need for rigour 8.3 Guideline: The need for consistency 8.4 Guideline: Use of undefined terms 8.5 Guideline: Use of ISO 2382 |
30 | 8.6 Guideline: Use of definition by reference 8.7 Guideline: Terminology used in bindings 9 Guidelines on use of formal specification languages 9.1 Guideline: Use of a formal specification language 9.2 Checklist of formal specification languages 9.2.1 General 9.2.2 Estelle |
31 | 9.2.3 Lotos 9.2.4 VDM-SL 9.2.5 Z |
32 | 9.2.6 Extended BNF 9.3 Guideline: Using formal specifications from the outset 9.4 Guideline: Use of operational semantics |
33 | 10 Guidelines on interoperability 10.1 General 10.1.1 Interoperability with what? |
34 | 10.1.2 The nature of the interoperation 10.1.3 How interoperation is invoked 10.2 Guidelines on interoperability with other instantiations of the same service 10.2.1 Guideline: Identifying features affecting interoperability 10.2.2 Guideline: Precise definition and rigorous conformity requirements |
35 | 10.2.3 Guideline: Importance of exchange values 10.3 Guidelines on interoperability with other services 10.3.1 General 10.3.2 Guideline: Interoperability with other services being defined at the same time 10.3.3 Guideline: Interoperability with a pre-defined service |
36 | 11 Guidelines on concurrency issues 11.1 General 11.2 Guidelines on concurrency within the service specification 11.2.1 Guideline: Avoidance of unnecessary concurrency requirements 11.3 Guidelines on concurrency of interaction with service users 11.3.1 General |
37 | 11.3.2 Guideline: Handling of concurrent service requests 11.3.3 Guideline: Number of concurrent service requests handled 11.3.4 Guideline: Order of processing of service requests 11.3.5 Guideline: Criteria for prioritizing service requests 11.4 Guidelines on concurrency requirements on bindings 11.4.1 General 11.4.2 Guideline: Avoidance of concurrency requirements |
38 | 11.4.3 Guideline: Specification of unavoidable concurrency requirements 12 Guidelines on the selection and specification of datatypes 12.1 General 12.2 Guideline: Use of ISO/IEC 11404 General-Purpose Datatypes (GPD) 12.3 Guideline: Specification of datatype parameter values |
39 | 12.4 Guideline: Treatment of values outside the set defined for the datatype 12.5 Guideline: Specification of operations on data values 12.6 Guideline: Recommended basic set of datatypes 12.7 Guideline: Specification of arithmetic datatypes |
40 | 12.8 Guideline: Approach to language bindings of datatypes 12.9 Guideline: Avoidance of representational definitions 13 Guidelines on specification of procedure calls 13.1 General |
41 | 13.2 Guideline: Avoidance of unnecessary operational assumptions or detail 13.3 Guideline: Use of ISO/IEC 13886 procedure calling model 13.4 Guidelines on the use of ISO/IEC 13886 13.4.1 General |
42 | 13.4.2 Guideline: Selection of datatypes of parameters 13.4.3 Guideline: Selection of parameter passing modes |
43 | 13.4.4 Guideline: Use of bindings to LIPC 13.5 Interfacing via remote procedure calling (RPC) 13.5.1 General 13.5.2 Guideline: Avoid limiting the service specification because of constraints on the interface specification |
44 | 13.5.3 Guideline: Specification of RPC interface 13.5.4 Guideline: Use of subsets 13.5.5 Guideline: Use of ISO/IEC 11578 13.6 Guideline: Guidance concerning procedure calling to those defining language bindings to the language-independent service specification |
45 | 14 Guidelines on specification of fault handling 14.1 General |
46 | 14.2 Guideline: Fault detection requirements 14.3 Checklist of potential faults 14.3.1 Invocation faults 14.3.2 Execution faults |
47 | 14.4 Guideline: Recovery from non-fatal faults 15 Guidelines on options and implementation dependence 15.1 General |
48 | 15.2 Guidelines on service options 15.2.1 Guideline: Optional service features 15.2.2 Guideline: Avoidance of assumptions about the use of the service 15.2.3 Guideline: Use of query mechanism 15.2.4 Guideline: Management of optional service features |
49 | 15.2.5 Guideline: Definition of optional features 15.3 Guidelines on interface options 15.3.1 Guideline: Completeness of interface 15.3.2 Guideline: Interface to service with options 15.4 Guidelines on binding options 15.4.1 Guideline: Completeness of binding 15.4.2 Guideline: Binding to a service with options |
50 | 15.4.3 Guideline: Binding to a language with optional features 15.5 Guidelines on implementation dependence 15.5.1 Guideline: Completeness of definition 15.5.2 Guideline: Provision of implementation options |
51 | 15.5.3 Guideline: Implementation-defined limits |
52 | 16 Guidelines on conformity requirements 16.1 General |
53 | 16.2 Guidelines for specifying conformity of implementations of the service 16.2.1 Guideline: Avoidance of assumptions about the implementation language 16.2.2 Guideline: Avoidance of representational assumptions 16.2.3 Guideline: Avoidance of implementation model 16.2.4 Guideline: Requiring end results rather than methods 16.3 Guidelines for specifying conformity of implementations of the interface 16.3.1 Guideline: Requirements on implementation-defined aspects |
54 | 16.4 Guidelines for specifying conformity of bindings 16.4.1 Guideline: Propagating requirements to conforming bindings 16.4.2 Guideline: Adherence to defined semantics 17 Guidelines on specifying a language binding to a language-independent interface specification 17.1 General 17.2 Guideline: Use of bindings to LID and LIPC 17.3 Guideline: Adherence to defined semantics |
55 | 17.4 Guideline: Binding document organization 17.5 Guideline: “Reference card” binding documents |
56 | 18 Guidelines on revisions 18.1 General 18.2 Kinds of change that a revision can introduce 18.2.1 General 18.2.2 Addition of a new feature 18.2.3 Change to the specification of a well-defined feature 18.2.4 Deletion of a well-defined feature 18.2.5 Deletion of ill-defined feature |
57 | 18.2.6 Clarification of ill-defined feature 18.2.7 Change or deletion of obsolescent feature 18.2.8 Change of level definition 18.2.9 Change of specified limit to implementation-defined value 18.2.10 Change of other implementation requirement 18.2.11 Change of conformity clause 18.3 General guidelines applicable to revisions 18.3.1 Guideline: Revision compatibility 18.4 Guidelines on revision of the service specification 18.4.1 Guideline: Determining impact on interface and language bindings |
58 | 18.4.2 Guideline: Minimising impact on interface and language bindings 18.4.3 Guideline: Use of incremental approach to revision 18.5 Guidelines on revision of the service interface 18.5.1 Guideline: Buffering unrevised bindings from changes 18.5.2 Guideline: Use of incremental amendments 18.6 Guidelines on revision of language bindings following revision of the service interface 18.6.1 Guideline: Buffering application programs from changes 18.6.2 Guideline: Use of incremental amendments |
59 | 18.7 Guidelines on revision of a language binding following revision of the language 18.7.1 Guideline: Use of new language features 18.7.2 Guideline: Buffering “legacy” application programs from changes 18.7.3 Guideline: Buffering application programs by use of options |
60 | Annex A (informative) Brief guide to language-independent standards |
63 | Annex B (informative) Glossary of language-independent terms |
76 | Bibliography |