21.01.2014 Views

A Rationale-based Model for Architecture Design Reasoning

A Rationale-based Model for Architecture Design Reasoning

A Rationale-based Model for Architecture Design Reasoning

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

4.1. Software engineering research methods<br />

employing such an approach would select methodologies and technologies which initially<br />

appear to be suitable <strong>for</strong> their environment, and continuously improve and fine tune them<br />

to improve their software engineering practices. Although this approach is scientific in its<br />

own way, most often than not the knowledge or insights gained would remain within the<br />

organisation and the results are not reported.<br />

When new ideas are created, the arguments <strong>for</strong> their early stage development are<br />

usually supported by persuasion [138]. Examples of such models include [46, 119]. As<br />

time passes, continuous refinement and improvement will prove or disprove their validity.<br />

The following sub-sections describe some software engineering research methods. Based<br />

on these research methods, the appropriate validation techniques are selected <strong>for</strong> this<br />

research.<br />

4.1 Software engineering research methods<br />

Software engineering is still a maturing discipline. There<strong>for</strong>e, it is not surprising that many<br />

researchers are still debating on how software engineering research should be conducted<br />

(e.g. [41, 166, 125, 172]). As reported by Adrion in [167] and by Glass in [49], software<br />

engineering research problems have different characteristics and thus different research<br />

methods are employed accordingly:<br />

• Scientific Method - Scientists develop a theory to explain an observed phenomenon.<br />

They propose a model or a theory of behaviour, and validate the hypotheses of the<br />

model or theory through experimentation.<br />

• Engineering Method - Engineers observe existing solutions and propose new improvements.<br />

They measure or analyse the improvements until no further improvements<br />

are possible.<br />

• Empirical Method - Researchers observe a phenomenon and put <strong>for</strong>ward some hypotheses.<br />

They then collect data to test the model using statistical methods or case<br />

studies. These data and their analysis are used to support or refute a hypothesis.<br />

• Analytical Method - Researchers propose a <strong>for</strong>mal theory or a set of axioms, then<br />

derive results from the theory and if possible compare the results with empirical<br />

observations.<br />

Part of the problem with software engineering research methodology is that the boundaries<br />

of the field is not clearly defined. As a result, methodological conflicts arise when<br />

47

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!