Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Doorstop: Text-based requirements management using version control.

Doorstop: Text-based requirements management using version control.

Jace Browning

December 12, 2013
Tweet

More Decks by Jace Browning

Other Decks in Programming

Transcript

  1. Outline • Introduction • Required Features • Existing Solutions •

    Doorstop Model • Implementation Details • Future Work
  2. Introduction • What is a “requirement”? ◦ Uniquely identified block

    of text ◦ Contains a “shall” statement ◦ Metadata: type, author, notes, etc. ◦ Links to other requirements • Applications: ◦ Aerospace, medical, automotive, etc.
  3. Introduction • Other linkable items: ◦ Test cases and procedures

    ◦ Source code modules and functions • Collections of items form documents: ◦ Outline organization ◦ Parent-child relationship
  4. Introduction (cont.) • What is “requirements management”? ◦ Requirements decomposition

    ◦ Test coverage ◦ Traceability review • Requirements management tools help: ◦ Create, edit, and link items ◦ Present and export documents ◦ Store and provide access
  5. Required Features • Composition: ◦ Unique, permanent IDs for items

    ◦ Linkable sections of text ◦ Formatted text ◦ External references ◦ Expandable interfaces
  6. Required Features • Presentation: ◦ Standard users: ▪ documents ▪

    link tables ◦ Advanced users: ▪ filters ▪ queries ▪ scripts ◦ Auditable trail of baselines
  7. Required Features • Administration: ◦ Permanent and secure storage ◦

    Change management = request and review ◦ Connection to existing accounts ◦ Scaleable: ▪ document size ▪ user base ◦ Lightweight installation
  8. Existing Solutions • Centralized: ◦ GUI with editable columns of

    text ◦ Stored as database entries ◦ Options: DOORS, Dimensions, Integrity, OSRMT ◦ Disadvantages: ▪ licensing costs ▪ proprietary scripting interfaces ▪ limited connection to source code
  9. Existing Solutions • Cloud-based: ◦ Cleaner, modern web interfaces ◦

    Offsite storage of document histories ◦ Options: Accompa, Jama, aNimble Platform ◦ Disadvantages: ▪ 3rd-party hosting restrictions ▪ limited scripting interfaces ▪ disconnected from source code
  10. Existing Solutions • Decentralized: ◦ Store requirements as files ◦

    Typically command-line interfaces ◦ Options: rmtoo ◦ Disadvantages: ▪ complex installations ▪ harder for non-technical users ▪ limited cross-platform support
  11. Doorstop Model • Text files stored in version control •

    “Item Files” ◦ Linkable text (requirement, test case, etc.) ◦ External references ◦ Assigned unique and sequential file name • “Document Directories” ◦ Contain related item files ◦ Parent-child relationship between documents
  12. Doorstop Model (cont.) • Role of the tool: ◦ Create

    document directories and item files ◦ Add and remove links between item files ◦ Format the contents of item files ◦ Validate the document hierarchy and contents ◦ Export text for presentation purposes
  13. Doorstop Model (cont.) • Role of the version control system

    (VCS): ◦ Stores the item files: commit ◦ Manages the history of requirements ◦ Creates baselines of requirements: tag ◦ Handles changes under review: branch/merge ◦ Associates changes with existing users ◦ Shows line differences between versions: diff ◦ Provides offline access with a distributed VCS
  14. Implementation Details • Python 3 • YAML ◦ Human-readable, machine-parsable

    ◦ Line-based • Markdown ◦ Presentable as pure text ◦ Converts to a variety of formats
  15. Future Work • Full-scale trial • GUI written in Python

    • More document presentation formats • Import and export to common formats