Package: dps-rtm
Validate a Function & Design Requirements document.Free software: MIT licenseJ&J Quick StartInstall PythonNavigate to J&J App Store. You may need to use Internet Explorer. Users have had difficulty with Chrome.SearchPython. You should see something similar toPython 3.6. Add it to cart and install.No restart is required.Run Command Prompt with Elevated PrivilegesDo not call IRIS.Hit theWindows Keyand typecmdto search for the Windows command promptRight-clickcmdand selectopen file location. This opens File Explorer.Right-click on thecmdicon and selectRun with elevated privileges.Installdps-rtmIn Command Prompt, typepip installdps-rtmIf this throws an error, try instead:python-mpip installdps-rtm. Hint: the up-arrow accesses previous commands to reduce the amount of typing you need to do.Note: You might see a note aboutpipbeing out of date. This is ok, but feel free to update it as suggested.RunrtmIn Command Prompt, typertmNote: Running the command prompt with elevated privileges is only needed for installing and upgradingrtm. To run the program, just open command prompt normally.How to Upgrade to Latest VersionRun Command Prompt with Elevated PrivilegesHit theWindows Keyand typecmdto search for the Windows command promptRight-clickcmdand selectopen file location. This opens File Explorer.Right-click on thecmdicon and selectRun with elevated privileges.Upgradedps-rtmIn Command Prompt, typepip install--upgradedps-rtmValidation RulesGeneral NotesThe FDR sheet must have the title ‘Procedure Based Requirements’If multiples headers share the same name, only the first will be used.All columns get checked for 1) Exist and 2) Correct left-to-right order.IDUNIQUE: Each ID must be uniqueALPHABETICAL SORT: The entire column must be in alphabetical order.PROCEDURE STEP FORMAT: Procedure Step IDs must be formattedPXYZe.g.P010START WITH ROOT ID: All other IDs must start with the ID of its root Procedure Step. Example: if a Procedure Step has an ID of “P010”, then the following VOC USER NEED could have an ID of “P010-0010”.Cascade BlockThe Cascade Block is a group of columns: Procedure Step, Need, Design Input, Solution Level 1, …, Solution Level n.NOT EMPTY: Error if Cascade Block row is entirely empty.SINGLE ENTRY: Warning if more than one cell in Cascade Block row has an entry. Only the first is considered.USE ALL COLUMNS: Warning if any Cascade Block columns are completely blank.ORPHAN WORK ITEMS: Each work item must trace back to a procedure step.SOLUTION LEVEL TERMINAL: Each requirements trace terminates at the Solution Level.F ENTRY: Terminal work items are marked with ‘F’ in the Cascade Block.X ENTRY: All other work items are marked with ‘X’.Cascade LevelNOT EMPTYVALID INPUT: Procedure Step, VOC User Need, Business Need, Risk Need, Design Input, or Solution LevelCASCADE BLOCK MATCH: matches selection in Cascade BlockRequirement StatementRTM Validator recognizes text string as tags if they meet these criteria:Text string starts with#(pound sign)Text string begins on a new line.Some tags (e.g. #ParentOf, #ChildOf) take modifiers. RTM Validator recognizes text strings as modifiers if they meet these criteria:Text string is separated from tag by white space (one or more spaces).Occurs on same line as tagmodifiers cannot contain white space.Examples:#ParentOf P010-020- tag:ParentOf; modifier:P010-020.#ChildOf P 020-054- tag:ChildOf; modifier:P. Note that the020-054is ignored.#ParentOf- tag:ParentOf; modifier: (None).Available Base Tags:ParentOfChildOfFunctionMatingPartsMechPropertiesUserInterfaceChecksNOT EMPTYMISSING TAGS: Use each base tag at least once in the documentCUSTOM TAG: Custom tags are allowed, but produce a warning.PARENT/CHILD MODIFIERSParentOf and ChildOf modifiers must match a value in the ID column.MUTUAL PARENT/CHILD: Each ChildOf work item must point to a work item that is itself a ParentOf the first work item.Requirement RationaleNOT EMPTYVorV StrategyNOT EMPTYBUSINESS NEED N/A: Business Need work items are marked with ‘N/A’.VorV ResultsNOT EMPTYBUSINESS NEED N/A: Business Need work items are marked with ‘N/A’.DevicesNOT EMPTYDO FeaturesNOT EMPTYCTQ FORMAT: if contains features that are CTQs, CTQ ID should be formatted as “(CTQ##)”MISSING CTQ: if CTQ Y/N yes, check for CTQ IDs in DO Features columnCTQ Y/NNOT EMPTYVALID INPUT: “yes”, “no”, “N/A”, or “ - “ (only procedure step can have “ - “)CTQ -> YES: If DO Feature has a ctq, then this cell needs a yesPotential Future FeaturesReport on Windchill documents (WC#s, where used)Developer NotesHow It WorksThe Requirements Trace Matrix (RTM) documents the requirements cascade for an New Product Development (NPD) project.
Broad core requirements flow into multiple subrequirements, which themselves spawn yet more subrequirements, and so on.
Each (sub)requirement can have multiple parents, though most have only one.
Each of these (sub)requirements is called awork item.Expressed in terms ofGraph Theory,
the RTM is a collection of one or more directed, acyclic graphs.
Each graph node is represented as a single row in the RTM Excel worksheet.
Each node has multiple fields, represented by worksheet columns.
The graph edges are represented by the worksheet’s Cascade Block. To find a node’s primary parent,
find the last ‘X’ in the previous column of the Cascade Block.
All other parents are called out with tags in theRequirements Statementfield.The RTM Validator works by first reading all rows of each field into an object.
Then each work item (node) is read into its own object.
Finally, validation functions are called, field by field.
The output (pass/warning/fail) is displayed on the console.Release Historyv 0.1.1Initial PyPI uploadv 0.1.2added READMEv 0.1.3|4|5implement tkinterv 0.1.6implement click cli…v 0.1.16add Cascade Block validationv 0.1.17add Cascade Level & Requirement Statement validationv 0.1.22add excel markupv 0.1.23implement max width on outputversion checkv 0.1.26version checkrtm markup(no longerrtm highlight) saves marked-up excel sheet to subdirectory and open fileheaders must be located in row 2