code wiki / _hdl_build / nx_ux_study.nx

nx_ux_study.nx

buildroot/runtime/_hdl_build/nx_ux_study.nx

12135 B267 linesdepth 2pulls 2 transitivereach 1 importersview sourcekind librarytopic ux
docsdependenciesstructsconstsfunctions

about

nx_ux_study.nx -- the Nielsen Norman Group "Usability Testing 101" method encoded as a sovereign DATA STRUCTURE + an HONEST scoring engine. This is the anti-navel-gazing spine the operator asked for: it turns "is the feature PRESENT?" (a sticker) into "can a representative user complete a realistic TASK, and how SEVERE are the findings?" (rigor). A study cannot grade PASS if any task FAILED or any finding is major-or-worse -- feature presence is irrelevant to the grade. GROUNDING (rule 4): the method is NN/g's Usability (User) Testing 101 by Kate Moran (nngroup.com/articles/usability-testing-101, pub 2019-12-01; title/author/description verbatim-captured this session). The three components (facilitator, tasks, participant), the quantitative metrics (task success rate, time-on-task, error rate), the 10 Nielsen heuristics, and the 0..4 severity scale are the canonical, stable NN/g framework. license_tier: ORIGINAL

dependencies 1 imports · 1 importers

nx_syscalls.nx nx_ux_study.nx nx_ux_study_gate.nx

imports: nx_syscalls.nx

imported by: nx_ux_study_gate.nx

structs

41struct UxTask
51struct UxFinding
60struct UxStudy

consts

15const UX_TASK_BYTES: i64 = 48 // 6 i64/ptr fields
16const UX_FINDING_BYTES: i64 = 40 // 5 i64/ptr fields
17const UX_STUDY_BYTES: i64 = 72 // 9 i64/ptr fields
20const UX_FAIL: i64 = 0
21const UX_PARTIAL: i64 = 1
22const UX_SUCCESS: i64 = 2
26const UX_SEV_MINOR: i64 = 2
27const UX_SEV_MAJOR: i64 = 3
30const UX_GRADE_FAIL: i64 = 0
31const UX_GRADE_COND: i64 = 1 // conditional: usable but defects remain
32const UX_GRADE_PASS: i64 = 2
35const UX_SURF_NISHI_DESKTOP: i64 = 0
36const UX_SURF_NISHI_MOBILE: i64 = 1
37const UX_SURF_CHROME_DESKTOP: i64 = 2
38const UX_SURF_CHROME_MOBILE: i64 = 3

functions

73func ux_w(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 }
74func ux_n(v: i64) -> i64
called by 2: ux_reportmain calls 2: sys_mmapsys_write
89func ux_task(s: *UxStudy, i: i64) -> *UxTask
92func ux_finding(s: *UxStudy, i: i64) -> *UxFinding
97func ux_set_task(s: *UxStudy, i: i64, desc: *u8, crit: *u8, outcome: i64, tf: i64, ne: i64) -> i64
called by 1: main calls 1: ux_task
107func ux_set_finding(s: *UxStudy, i: i64, h: i64, sev: i64, desc: *u8, ev: i64, rec: *u8) -> i64
called by 1: main calls 1: ux_finding
118func ux_heuristic_name(id: i64) -> i64
called by 1: ux_report calls 1: ux_w
135func ux_task_success_rate(s: *UxStudy) -> i64
called by 2: ux_gradeux_report calls 1: ux_task
146func ux_any_task_fail(s: *UxStudy) -> i64
called by 1: ux_grade calls 1: ux_task
155func ux_max_severity(s: *UxStudy) -> i64
called by 1: ux_grade calls 1: ux_finding
165func ux_count_severity(s: *UxStudy, lvl: i64) -> i64
called by 1: ux_report calls 1: ux_finding
175func ux_total_errors(s: *UxStudy) -> i64
called by 1: ux_report calls 1: ux_task
190func ux_grade(s: *UxStudy) -> i64
199func ux_print_outcome(o: i64) -> i64
called by 1: ux_report calls 1: ux_w
204func ux_print_severity(sv: i64) -> i64
called by 1: ux_report calls 1: ux_w
211func ux_print_surface(sf: i64) -> i64
called by 1: ux_report calls 1: ux_w
218func ux_print_grade(g: i64) -> i64
called by 2: ux_reportchk calls 1: ux_w
225func ux_report(s: *UxStudy) -> i64