The tangible contributions of software engineering research may be procedures or techniques for development or analysis; they may be models that generalize from specific examples, or they may be specific tools, solutions, or results about particular systems. The table below lists the types of research results that are reported in software engineering research papers and provides specific examples.
By far the most common kind of ICSE paper reports a new procedure or technique for development or analysis. Models of various degrees of precision and formality were also common, with better success rates for quantitative than for qualitative models. Tools and notations were well represented, usually as auxiliary results in combination with a procedure or technique.
|Type of result||Examples|
|Procedure or technique||New or better way to do some task, such as design, implementation, maintenance, measurement, evaluation, selection from alternatives; includes techniques for implementation, representation, management, and analysis; a technique should be operational—not advice or guidelines, but a procedure|
|Qualitative or descriptive model||Structure or taxonomy for a problem area; architectural style, framework, or design pattern; non-formal domain analysis, well-grounded checklists, well-argued informal generalizations, guidance for integrating other results, well-organized interesting observations|
|Empirical model||Empirical predictive model based on observed data|
|Analytic model||Structural model that permits formal analysis or automatic manipulation|
|Tool or notation||Implemented tool that embodies a technique; formal language to support a technique or model (should have a calculus, semantics, or other basis for computing or doing inference)|
|Specific solution, prototype, answer, or judgment||Solution to application problem that shows application of SE principles – may be design, prototype, or full implementation; careful analysis of a system or its development, result of a specific analysis, evaluation, or comparison|
|Report||Interesting observations, rules of thumb, but not sufficiently general or systematic to rise to the level of a descriptive model.|
The program committee looks for interesting, novel, exciting results that significantly enhance our ability to develop and maintain software, to know the quality of the software we develop, to recognize general principles about software, or to analyze properties of software.
You should explain your result in such a way that someone else could use your ideas. Be sure to explain what’s novel or original – is it the idea, the application of the idea, the implementation, the analysis, or what?
Define critical terms precisely. Use them consistently. The more formal or analytic the paper, the more important this is.
Guidance about being precise about the result
Explain what your result is and how it works. Be concrete and specific. Use examples.
If you introduce a new model, be clear about its power. How general is it? Is it based on empirical data, on a formal semantics, on mathematical principles? How formal is it—a qualitative model that provides design guidance may be as valuable as a mathematical model of some aspect of correctness, but they will have to satisfy different standards of proof. Will the model scale up to problems of size appropriate to its domain?
If you introduce a new metric, define it precisely. Does it measure what it purports to measure and do so better than the alternatives? Why?
If you introduce a new architectural style, design pattern, or similar design element, treat it as if it were a new generalization or model. How does it differ from the alternatives? In what way is it better? What real problem does it solve? Does it scale?
If your contribution is principally the synthesis or integration of other results or components, be clear about why the synthesis is itself a contribution. What is novel, exciting, or nonobvious about the integration? Did you generalize prior results? Did you find a better representation? Did your research improve the individual results or components as well as integrating them? A paper that simply reports on using numerous elements together is not enough, even if it’s well-engineered. There must be an idea or lesson or model that the reader can take from the paper and apply to some other situation.
If your paper is chiefly a report on experience applying research results to a practical problem, say what the reader can learn from the experience. Are your conclusions strong and well-supported? Do you show comparative data and/or statistics? An anecdotal report on a single project is usually not enough. Also, if your report mixes additional innovation with validation through experience, avoid confusing your discussion of the innovation with your report on experience. After all, if you changed the result before you applied it, you’re evaluating the changed result. And if you changed the result while you were applying it, you may have confounded the experiences with the two versions.
If a tool plays a featured role in your paper, what is the role of the tool? Does it simply support the main contribution, or is the tool itself a principal contribution, or is some aspect of the tool’s use or implementation the main point? Can a reader apply the idea without the tool? If the tool is a central part of result, what is the technical innovation embedded in the tool or its implementation?
If a system implementation plays a featured role in your paper, what is the role of the implementation? Is the system sound? Does it do what you claim it does? What ideas does the system demonstrate?
- If the implementation illustrates an architecture or design strategy, what does it reveal about the architecture? What was the design rationale? What were the design tradeoffs? What can the reader apply to a different implementation?
- If the implementation demonstrates an implementation technique, how does it help the reader use the technique in another setting?
- If the implementation demonstrates a capability or performance improvement, what concrete evidence does it offer to support the claim?
- If the system is itself the result, in what way is it a contribution to knowledge? Does it, for example, show you can do something that no one has done before (especially if people doubted that this could be done)?