According to Perelman & Olbrechts-Tyteca in The New Rhetoric (1958), argumentation requires the establishment of an audience around a particular subject or object of inquiry. While demonstration involves a person’s lone construction of an axiomatic system, or series of deductive rules, on a subject, it does not account for the grounded assumption on which it is built. Argumentation, on the other hand, involves a group, or “community of minds” (14), who take up the task to question and divide the subject or object into various expressions of its ontology.
I see the distinction between demonstration and argumentation as it relates to the development of vs. the development and testing of software. In the case of demonstration, a developer, or team of developers (which raises a whole new can of worms in the scope of this question), will write a program that can include a very distinct set of deductive rules or ways of accomplishing something. This can be accomplished in the absence of an audience, i.e. users, where the developer(s) decide how the program should be written without any credence to why these rules and ways of doing and thinking about the functionality of the program came to be. This is the crux of demonstration, where such “axiomatic systems” (14) are constructed with little to no regard for an audience. Usability and user experience, then, could be an example of argumentation, since it establishes a common ground that this software exists and is something to be questioned and tested, so, as is the case for modern software development, such methods of usability and user experience are the grounds on/by which developers seek an “adherence of minds” regarding the claims and systems of rules a program executes.