63 lines
2.9 KiB
HTML
63 lines
2.9 KiB
HTML
<html>
|
|
|
|
<head>
|
|
<meta http-equiv="Content-Language" content="sv">
|
|
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
|
|
<meta name="ProgId" content="FrontPage.Editor.Document">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
|
|
<meta name="author" content="Kim Walden">
|
|
<title>BON method: reversibilty main</title>
|
|
<base target="_self">
|
|
<link rel="stylesheet" type="text/css" href="nn4.css">
|
|
<style type="text/css">
|
|
@import url("normal.css");
|
|
</style>
|
|
<script type="text/javascript">
|
|
<!--
|
|
function check() {
|
|
if (top.frames.length == 0 || top.frames[0].name != "banner")
|
|
top.location.href = "index.htm?reversibility";
|
|
}
|
|
//-->
|
|
</script>
|
|
</head>
|
|
|
|
<body onload="check()" bgcolor="#ffffff" alink="#33cc00" link="#0000ff" vlink="#0000ff">
|
|
|
|
<h1>Reversibility</h1>
|
|
|
|
<p>The term reversibility in the context of software development means the
|
|
possibility of propagating independent changes made to the resulting source code back
|
|
into the design and analysis models of earlier phases, so these can be kept up
|
|
to date with what is actually executed. </p>
|
|
|
|
<p>As any experienced developer knows, going full circle everytime a change is
|
|
to be made: first modify the higher level models, then translate these changes
|
|
into the corresponding code changes, is totally unfeasible in practice.
|
|
And yet, most books and papers on analysis and design of software systems
|
|
continue (at best) to pay lip service to the issue of reversibility, before
|
|
proceeding to methods and concepts that are completely non-reversible, as if the
|
|
world consisted of the toy examples elborated in the texts.</p>
|
|
|
|
<p>Since maintenance of software systems involve continuous modification of
|
|
source code, any method based on concepts that are not unambiguously
|
|
translatable to <b>and from </b>the programming constructs used in the code,
|
|
will produce high-level models that immediately start to deviate from the real
|
|
system. Therefore, the developers will stop trusting the models almost
|
|
from day one, and the binders containing the bubble diagrams will stay on the
|
|
shelves. Alternatively, a designer group will continue to talk
|
|
in terms of the bubbles, while the programmers, who are forced to make things
|
|
work in practice, will think in terms of the concepts of their language,
|
|
preventing any effective commuication between the two. </p>
|
|
|
|
<p>In short, we need to use the same basic concepts for analysis and design as
|
|
we will in our source code. The object-oriented abstraction has the
|
|
potential to serve as such a universal concept. But only if the
|
|
models are kept free from mismatching concepts drawn from other paradigms, such
|
|
as entity-relationship modeling and/or central emphasis on use cases.</p>
|
|
<p>My <a target="_blank" href="computer_annotated.pdf">IEEE Computer article</a>
|
|
from 1996 stating the case for reversibility can be found here.</p>
|
|
|
|
</body>
|
|
|
|
</html> |