Insight Horizon
technology trends /

CS6310: Design Studies

CS6310: Design Studies

Designers often build and compare physical models in order to better understand a problem. Examples are building architects and automobile designers. For the purposes of this course, a design study is a systematic comparison of multiple versions of a program with the intent of better understanding it.

You can think of a design study as an empirical scientific experiment. That is, there are research questions, subjects of study, experimental conditions, methods, tools, metrics, independent and dependent variables, data collection, statistical analyses, and conclusions. An overall goal is repeatability. That is, someone else should be able to take your study report, use it to recreate the study and reach the same conclusions. It is one of the goals of this class that you learn the skills to produce and present an industrial-quality design study.

Here are the topics you should consider in planning a design study. They should appear as separate labeled sections in the resulting report.

  • Context: What is your study examining? For CS6310, this means determining the role of various non-functional constraints on the quality of a simulation program. Give enough background so that a reader unfamiliar with this class and its projects can understand what you are talking about. Also, in this section, define any specialized vocabulary that you will be using in the report.
  • Research questions: You should formulate specific research questions that you will study. For example, What is the effect of increased precision on execution time? There should be questions discussing each tradeoff among the problem constraints
  • Subjects: A subject is something that you are studying, for example, a program. A design study compares multiple subjects. Each subject should be briefly described, differentiating it from the other subjects
  • Experimental conditions: What is the environment in which the study will take place. This includes elements such as machines, operating systems, programming languages, virtual machines, network (where relevant), build and execution parameters, input files, and confounding factors (other users or processes). Remember that the goal is repeatability
  • Independent variables: Explicitly describe factors that you can vary, such as precision. Give a distinct name to each variable
  • Dependent variables: Explicit statement of what factors you expect to be affected by variations in the independent variables, such as performance. Give a distinct name to each variable
  • Metrics: For each variable (independent and dependent), state how will you measure it. This should include the unit of measurement, such as seconds, and a precise definition, such as a line of code is a maximal sequence of non-line-break characters that includes some non-whitespace content occurring in a Java source file". For some factors, such as time, this is straightforward. For others, such as maintainability, you must think carefully about the factor and invent an appropriate way to measure it
  • Method: A description of how you will conduct the experiment. This includes number of trials, measurement devices and tools, randomization technique (where appropriate), significant digits, etc. This should also include an explicit statement of which subjects will be run with the arguments used. For example, if you were studying the relation of performance to grid size, you would want to specify what different grid sizes you will be using
  • Analysis techniques: How will you analyze the data? What statistics will you use? For example, means vs. medians? Are you performing regression analysis or computing correlations? What will you do about outliers? How will you judge significance? How will you report error bounds? Are you doing any interpolation or curve fitting?
  • Presentation: How do you plan to present the results? Graphs? Tables?
  • Results: The data collected (empirical results) and the results of analysis (analytical results)
  • Discussion: Reflection on the experimentation itself, including explanations for anomalous phenomena and suggestions for improving the study process. In particular, any anomalous results should be thoroughly explored and explained
  • Conclusions: Specific answers to the research questions

A design study is presented in a report. The report is a carefully formatted presentation of the items listed above. It may include charts, tables, graphs and screen shots as well as descriptive text. It is not a narrative, but a dispassionate description of a systematic exploration. The report should be professional in quality. This means that you should treat it like you would if you were preparing to show it to customers or submit it for publications. Its spelling and grammar should be checked, and it should be carefully proofread by a team member other than the author.

Here is an MS Word file providing a starting point for your report.