| Field | Value |
|---|---|
| Document Title | CIF Go SDK User Guide |
| Version | 1.0 |
| Date | [Current Date] |
| Authors | CIF SDK Development Team |
| Copyright | © 2025 CIF SDK Contributors. All rights reserved. |
| Purpose | This document provides guidance for software developers on using the CIF Go SDK to create ISO 25065:2019-compliant user requirements specifications. |
| Scope | Covers installation, usage procedures, and examples for the SDK. Does not include internal API implementation details or end-user software guides. |
| Audience | Software developers, technical writers, and project managers with basic Go programming knowledge. |
| Prerequisites | Go 1.21 or later, familiarity with ISO 25065:2019 standards. |
Table of Contents:
- Introduction
- Concept of Operations
- Procedures
- Information for Uninstallation
- Appendices
- 5.1 Glossary
- 5.2 Index
Document Quality Notes: This documentation adheres to ISO/IEC/IEEE 26514 for clarity, consistency, and accessibility. Tested for readability on standard screens and with screen readers.
The CIF Go SDK enables software developers to create, validate, and manage user requirements specifications compliant with ISO 25065:2019 (Common Industry Format for Usability: User requirements specification). This SDK supports the development of interactive systems by providing tools for specifying user-system interaction requirements and use-related quality requirements.
- Primary Audience: Software engineers and technical writers responsible for user requirements in interactive system development.
- Usage Context: Use this SDK in development environments for creating CIF-compliant specifications. It is suitable for Agile teams requiring rapid, maintainable documentation.
- ISO 25065:2019: Common Industry Format (CIF) for Usability
- ISO 9241-11: Usability definitions and concepts
- Go Programming Language Documentation
The CIF Go SDK is a software library that implements the Common Industry Format (CIF) for usability user requirements. It provides:
- Data structures for CIF elements (e.g., interactive systems, goals, tasks, requirements).
- Fluent builder APIs for constructing specifications.
- Validation against ISO 25065:2019 standards.
- Serialization in multiple formats (JSON, YAML, CIF text).
- Complete ISO 25065:2019 compliance.
- Type-safe Go implementation with error handling.
- Support for hierarchical goal/task structures.
- Comprehensive validation and cross-reference checking.
- Assumes users have Go development environment set up.
- Limited to CIF specification creation; does not execute or deploy systems.
- Requires internet access for dependency management.
- Ensure Go 1.21 or later is installed.
- Run:
go get github.com/iso-cif/cif-sdk. - Verify installation: Import the package in a Go file and check for compilation errors.
- Import the SDK:
import cif "github.com/iso-cif/cif-sdk". - Use the SpecificationBuilder:
spec, err := cif.NewSpecification(). WithInteractiveSystem(cif.NewInteractiveSystem("id", "name", "type").Build()). AddGoal(cif.NewGoal("goal_id", "Goal Name").Build()). AddUserRequirement(cif.NewUserSystemInteractionRequirement("req_id").CanInput("data").Build()). Build() if err != nil { log.Fatal(err) }
- Validate:
validator := cif.NewValidator(spec); errors := validator.Validate().
- Create a Serializer:
serializer := cif.NewSerializer(). - Export to JSON:
err := serializer.ExportJSON(spec, "file.json"). - Export to CIF text:
err := serializer.ExportCIF(spec, "file.cif").
- Navigate to the
examples/directory. - Execute:
go run immigration_kiosk.go(replaces outdated command).
- Run tests:
go test -v ./.... - Review output for failures.
This SDK is a Go library with no standalone installation. To remove:
- Delete the module from your Go project:
go mod tidy. - Remove any cached dependencies:
go clean -modcache. Note: This section is included per ISO/IEC/IEEE 26514, Clause 7.6, though not directly applicable to library usage.
- CIF (Common Industry Format): A standardized framework for usability-related information (ISO 25065).
- Fluent API: A design pattern allowing method chaining for readable code construction.
- User-System Interaction Requirements: Specifications for what users can do with a system.
- Use-Related Quality Requirements: Criteria for effectiveness, efficiency, and satisfaction.
- Builders: See Section 3.2
- Compliance: See Section 1.3
- Examples: See Section 3.4
- Installation: See Section 3.1
- Validation: See Section 3.2