⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 systemmetaphor.html

📁 极限编程 Extream Programing
💻 HTML
字号:
<head><title>System Metaphor</title></head><body><h1><img src="logo.gif"> System Metaphor</h1>What <a href="ExtremeProgramming.html">ExtremeProgramming</a> (XP) uses instead of a formal architecture. A simple shared story of how the system works.  This story typically involves a handful of classes and patterns that shape the core flow of the system being built.
<p><hr>
<p>Ask yourself, what more familiar things is this problem like?  Is it really like ordering coffee from a fancy coffee machine?  Is it really mostly like steering (tacking) a sailboat across a lake? driving from Toronto to Paris? (just to avoid the <a href="http://c2.com/cgi/wiki?AmericanCulturalAssumption">AmericanCulturalAssumption</a>)
<p><em>You mean Paris, Kentucky, right? :)</em>
<p>Surely the problem, at its core, is rather like something your team already knows how to experience.  Uh, this may take some brainstorming...  And, you then have to code up a <a href="SpikeSolution.html">SpikeSolution</a> to check whether the metaphor actually holds water for your problem (pardon the metaphor). --<a href="http://c2.com/cgi/wiki?AlistairCockburn">AlistairCockburn</a>
<p><hr> 
<p>From the OOPSLA 97 paper (see: <a href="ExtremeArticle.html">ExtremeArticle</a>):
<p>''Chrysler is a manufacturing company; we make cars.  Using a manufacturing metaphor to define the project was an important first step in getting the team (and management) on a level playing field.  The concepts of
<strong>lines</strong>,
<strong>parts</strong>,
<strong>bins</strong>,
<strong>jobs</strong>, and
<strong>stations</strong> are metaphors understood throughout the company.  The team had the benefit of a very rich domain model developed by members of the team in the project's first iteration.  It gave the members of the project an edge in understanding an extremely complex domain.''
<p><hr>
<hr>
<p>As best I can discern from the limited description of <a href="SystemMetaphor.html">SystemMetaphor</a> here on the wiki, the <a href="SystemMetaphor.html">SystemMetaphor</a> only really describes the logical architecture of the system.  The logical architecture is, in the case of OO systems, the most important classes and objects and how they interact.  <a href="SystemMetaphor.html">SystemMetaphor</a> does not seem to address bigger architectural issues such as if the system should even be implemented using objects, the hardware component of architecture, the process and inter-process communication component of architecture, or the separation of the system into layers and/or components.  I don't mean to suggest <a href="ExtremeProgramming.html">ExtremeProgramming</a> (XP) does not address some or all of these issues, it just isn't done in the <a href="SystemMetaphor.html">SystemMetaphor</a>.
<p><hr>
<p>Isn't the intent of the <a href="SystemMetaphor.html">SystemMetaphor</a> to improve communication among the entire team (customers and non-programmers included) by creating a common way for all to view the system, rather than just expressing an architecture to the programmers?
<p>&quot;The system is a bakery&quot; jives better than &quot;The system interprets text as commands and executes them against builders that produce resultant objects and attach assorted decorators, sorting them via pipes and filters to the correct bins; the user can than browse and eat them as needed&quot; -- <a href="http://c2.com/cgi/wiki?RodneyRyan">RodneyRyan</a> 
<p><hr>
<p>In <a href="http://c2.com/cgi/wiki?ObjectOrientedSoftwareConstruction">ObjectOrientedSoftwareConstruction</a>, <a href="http://c2.com/cgi/wiki?BertrandMeyer">BertrandMeyer</a> points out that as powerful and useful as metaphors are, they can be dangerous. Specifically, if metaphors are taken too much at face value, one may mistakenly make &quot;proofs by analogy&quot;:
<p><PRE>    A resembles B
    B has property p
    Therefore A has property p
</PRE>Is there a danger in taking the <a href="SystemMetaphor.html">SystemMetaphor</a> too far and drawing false insights from it? If so, how does one know when the line is being crossed?  --<a href="http://c2.com/cgi/wiki?TimVoght">TimVoght</a>
<p><em>The point is also made that the more compelling the metaphor, the greater the danger of crossing the line. -tv</em>
<hr>
<a href="http://c2.com/cgi/wiki?DesigningAnAuthenticationSystem">DesigningAnAuthenticationSystem</a> illustrates (by a story) how a <a href="SystemMetaphor.html">SystemMetaphor</a> can be used.
<hr>
The notion of <a href="SystemMetaphor.html">SystemMetaphor</a> is inescapable, since the system is always the MACHINE (See Michael Jackson's <em>Software Requirements and Specifications</em>)  and the representation of the Application Domain is always a metaphor built over data and process physically represented by memory cells and a CPU. --<a href="http://c2.com/cgi/wiki?RaySchneider">RaySchneider</a>
<p><em>hmmm, I think we've lost sight of what a Metaphor really is. I believe a SystemModel<a href="http://c2.com/cgi/wiki?edit=SystemModel">?</a> is inescapable, but <a href="SystemMetaphor.html">SystemMetaphor</a> is not. Fundamentally all players in a system development will, as a bare minimum, be working with a <a href="http://c2.com/cgi/wiki?MentalModel">MentalModel</a> of the system, but to describe the system by analogy (the <a href="SystemMetaphor.html">SystemMetaphor</a>) is extra work that may or not be carried out (or required) (or useful)</em> -- PaulGallagher<a href="http://c2.com/cgi/wiki?edit=PaulGallagher">?</a>
<p><strong>See also:</strong> <a href="http://c2.com/cgi/wiki?AttributeBasedArchitecturalStyles">AttributeBasedArchitecturalStyles</a>, <a href="http://c2.com/cgi/wiki?ProblemFrame">ProblemFrame</a>, <a href="http://c2.com/cgi/wiki?EightSystemMetaphors">EightSystemMetaphors</a>, <a href="http://c2.com/cgi/wiki?MetaphorsWeLiveBy">MetaphorsWeLiveBy</a>
<p>=
<hr>
Can &quot;J2EE Blueprints&quot; be a system metaphor?
-- <a href="http://c2.com/cgi/wiki?JefNewsom">JefNewsom</a>
<hr>
<a href="http://c2.com/cgi/wiki?TopicGlossaryComputerScience">TopicGlossaryComputerScience</a> | <a href="http://c2.com/cgi/wiki?TopicGlossaryXp">TopicGlossaryXp</a><hr><a href="http://c2.com/cgi/wiki?edit=SystemMetaphor">EditText</a> of this page (last edited December 25, 2000)<br><a href="http://c2.com/cgi/wiki?FindPage&value=SystemMetaphor">FindPage</a> by browsing or searching<p><font color=gray size=-1>This page mirrored in <a href="index.html">ExtremeProgrammingRoadmap</a> as of March 31, 2001</font></body>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -