This file is indexed.

/usr/share/doc/python-gtkmvc-doc/userman/motiv.html is in python-gtkmvc-doc 1.99.1-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>Motivations &mdash; Model-View-Controller and Observer patterns for PyGTK v1.99.1 documentation</title>
    <link rel="stylesheet" href="_static/default.css" type="text/css" />
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '',
        VERSION:     '1.99.1',
        COLLAPSE_MODINDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="_static/jquery.js"></script>
    <script type="text/javascript" src="_static/doctools.js"></script>
    <link rel="top" title="Model-View-Controller and Observer patterns for PyGTK v1.99.1 documentation" href="index.html" />
    <link rel="next" title="Architectural Overview" href="arch.html" />
    <link rel="prev" title="Installation" href="install.html" /> 
  </head>
  <body>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="arch.html" title="Architectural Overview"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="install.html" title="Installation"
             accesskey="P">previous</a> |</li>
        <li><a href="index.html">Model-View-Controller and Observer patterns for PyGTK v1.99.1 documentation</a> &raquo;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="motivations">
<h1>Motivations<a class="headerlink" href="#motivations" title="Permalink to this headline">ΒΆ</a></h1>
<p>One major effort of Software Engineering has been to provide a way of
optimally separating the logical parts that constitute a software.
This issue becomes a question of outstanding importance in
middle/large interactive software, where an agent like an human user
interacts with the software, likely through a Graphic User Interface
(<em>GUI</em>).
To separate the logic (data) of an application from the representation
of those data, several Architectural Patterns <a class="footnote-reference" href="#archipat" id="id1">[1]</a>
have been studied; one is the Model&#8211;View&#8211;Controller (MVC) pattern
that splits the application into three separate parts, the <em>Model</em>,
the <em>View</em> and the <em>Controller</em>. The level of mutual knowledge
among these three entities is kept as minimal as possible, and this
results in:</p>
<ul class="simple">
<li>Reduced wrong dependencies.</li>
<li>Software architecture forced to be better designed.</li>
<li>Minimized propagation of changes/modifications.</li>
<li>Higher costs of startup, but potential lower costs of
maintenance.</li>
</ul>
<p>To improve re-usability and robustness of software, the <em>Observer</em> pattern is used
as well. This pattern identifies two entities: the
<em>Observable data</em> and the <em>Observer</em> over those data.</p>
<p>The implementation of the <em>Observer</em> pattern is intended to make the Observer take
some action when the Observable data change. This triggering mechanism
is a further abstraction layer that helps to
design and implement robust software.</p>
<p>A possible use of the <em>Observer</em> pattern is in combination with the <em>MVC</em> pattern, where the
model communicates indirectly with the presentation side through the
observer pattern.</p>
<p><em>gtkmvc</em> is a framework that implements both the MVC and Observer
patterns to be used to produce middle/large applications in Python and
<em>PyGTK</em>.</p>
<p>The main goal is to provide a minimal (but not trivial)
implementation, where practical aspects are taken into serious
consideration, and complexity is kept behind the scene. This makes the
users able to mainly focus their attention on the application they
need to produce, instead of dealing with the underlying framework.</p>
<p>Pointless to say that goals are clear and likely easy to
share by anyone. It is quite a different thing to prove that those
goals are reached by the proposed framework. Frankly, this is up to
the reader to decide.</p>
<p class="rubric">Footnotes</p>
<table class="docutils footnote" frame="void" id="archipat" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td><a class="reference external" href="http://en.wikipedia.org/wiki/Architectural_pattern_(computer_science%29">http://en.wikipedia.org/wiki/Architectural_pattern_(computer_science%29</a></td></tr>
</tbody>
</table>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper">
            <h4>Previous topic</h4>
            <p class="topless"><a href="install.html"
                                  title="previous chapter">Installation</a></p>
            <h4>Next topic</h4>
            <p class="topless"><a href="arch.html"
                                  title="next chapter">Architectural Overview</a></p>
            <h3>This Page</h3>
            <ul class="this-page-menu">
              <li><a href="_sources/motiv.txt"
                     rel="nofollow">Show Source</a></li>
            </ul>
          <div id="searchbox" style="display: none">
            <h3>Quick search</h3>
              <form class="search" action="search.html" method="get">
                <input type="text" name="q" size="18" />
                <input type="submit" value="Go" />
                <input type="hidden" name="check_keywords" value="yes" />
                <input type="hidden" name="area" value="default" />
              </form>
              <p class="searchtip" style="font-size: 90%">
              Enter search terms or a module, class or function name.
              </p>
          </div>
          <script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="arch.html" title="Architectural Overview"
             >next</a> |</li>
        <li class="right" >
          <a href="install.html" title="Installation"
             >previous</a> |</li>
        <li><a href="index.html">Model-View-Controller and Observer patterns for PyGTK v1.99.1 documentation</a> &raquo;</li> 
      </ul>
    </div>
    <div class="footer">
      &copy; Copyright 2010, Roberto Cavada.
      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.6.
    </div>
  </body>
</html>