Topic: localized understanding

topics > computer science > programming > Group: goals for a programming system

program module

abstraction in programming
access by current position
aspect-oriented programming
decision table
decomposition of a system into levels
disorientation in a user interface
ease of use
program module as encapsulation
fisheye views in the user interface
handling complexity
hypertext subsets, webs, and contexts
identifying program modules
information hiding
literate programming
local declaration of data
local vs. global
multiple views for a user interface
names defined by context
opaque and partially-opaque data types
separate a module's interface specification from its implementation
stepwise refinement
the effect of scale
the 'uses' hierarchy for organizing systems
understanding systems
uniform language systems


Any problem can be understood if it is small enough. Large problems can be broken up, making explicit the problem's structure. Locally most details can be ignored because they are constant. Top/down design and information handling create systems which are locally understandable. This is destroyed if understanding requires implicit information from other modules. Note that local understanding can only work with systems. Real objects loose their integrity when split into pieces and must be understood in relationship to their environment. (cbb 5/80)
Subtopic: understanding within a context up

Quote: to tell if a speaker mis-spoke, need to infer some of the speaker's meaning prior to the utterance; implies, decoding theories are incomplete [»blaiDC6_1992]
Quote: Subtext labels depend on the human ability to disambiguate labels by their context; labels are not unique [»edwaJ10_2005]

Subtopic: localized processing up

Quote: in an open system, control must be distributed so that local decisions are made where needed; uses local information [»hewiC7_1986]
Quote: process paradigm best for very large systems since users never need to see, and can not see, the system as a whole [»stroR10_1986]
Quote: object-oriented emphasizes global structure while process paradigm insists that all data is local [»stroR10_1986]
Quote: usually design data structures for localized processing, e.g., with an implicit cursor position [»hallJC5_1974]
Quote: design of Euclid ensured that only local information was needed for verification [»veneT3_1978]

Subtopic: economics up

Quote: numeric values required for solving the economic problem of resource and demand [»hayeFA9_1945]
Quote: instead of globally consistent economic information, have dispersed bits of incomplete, frequently contradictory information [»hayeFA9_1945]
Quote: prices coordinate the separate actions of different people; knowledge is dispersed [»hayeFA9_1945]

Subtopic: concise up

Quote: always remember you are on the wrong track when you need more than five lines [»dijkEW_1979]
Quote: with user-defined data types, programs are shorter; easier to write, understand, prove correct, modify [»parnDL3_1976]
Quote: a cohesive routine does one thing and does it well; described by a short title; helps reuse and avoids side effects [»peteS1_1997]
Quote: by not using concise, formal notation, many authors exceed the five-line limit and introduce too much complexity
Quote: it is better to split up functions into smaller pieces which may be useful for other purposes; abstraction [»wileDS11_1973, OK]
Quote: complicated systems look simple when split up; life is the opposite of this [»cbb_1973, OK]

Subtopic: concreteness up

Quote: Self promulgated the principles of concreteness, uniformity, flexibility, and immediacy

Subtopic: localized view up

Quote: for effective view navigation: views must be small, navigation should not require too many steps, and the path to a target must be discoverable [»furnGW3_1997]
Quote: a table improves view traversability because the neighborhoods are constant size and the diameter of the graph is the square root of its total size [»furnGW3_1997]
QuoteRef: morrJH1_1973 ;;16 Local objects allow local understanding of the object
QuoteRef: cbb_1973 ;;5/9/75 We see things in terms of a window. Local understanding
QuoteRef: cbb_1973 ;;8/8/75 Locally the amount of information is finite
QuoteRef: cbb_1973 ;;12/12/76 Localized viewpoint-- what is constant need not be indicated
QuoteRef: cbb_1973 ;;2/23/74 a.b.c\c is changing the reference point of a map i.e., letting the map cover a large area but remain local
QuoteRef: cbb_1973 ;;2/28/74 Now any space can locally be described as a map (i.e., == any space is locally a vector space)

Subtopic: module up

Quote: locality of information (modules): a programming system should keep related pieces of behavior and data together [»taivA4_1993]
Quote: the goal is to implement and reason about each module separately [»liskB_1996]
Quote: each module's structure should be simple enough to be understood fully [»parnDL3_1985]

Subtopic: expression up

Quote: understand X+Y by recursively understanding each part independently; manifest structure, clear meaning and purpose
Quote: the interface between the parts of X+Y is a single number

Subtopic: data type up

Quote: variables, arrays, files splits a machine into disjoint areas; updating one does not effect the others [»hoarCA_1974]

Subtopic: declaration scope up

Quote: block structure limits the scope of a variable; accessible from elsewhere only as a parameter [»hoarCA_1974]

Subtopic: information hiding up

Quote: information hiding necessary if designers wish to maintain control over a program's structure [»parnDL8_1971]
Quote: try to avoid functions that modify call-by-reference arguments. They make a program harder to read [»stroB_1991]
Quote: reference arguments should use 'const' if the argument is not modified; allows literal and expression arguments; improves readability

Subtopic: structured analysis up

Quote: structured analysis (SA) for communicating ideas; handle complexity by easy-to-grasp chunks [»rossDT1_1977]
Quote: structured analysis produces a hierarchy of diagrams, each describing a limited area; even complex subjects may be understood [»rossDT1_1977]
Quote: limit span of attention through top-down design; only one use of each program component [»jackMA_1975]

Subtopic: dialogue windows up

QuoteRef: goldA3_1976 ;;5 All communication through dialogue windows and a mouse. Only current window can listen

Subtopic: problems with non-local view up

Quote: C++ bugs took twice as long to correct as C bugs; C++ failure may be a long way away from the error [»hattL5_1998]
Quote: components involved in inheritance had six times more defects than those without [»hattL5_1998]
Quote: the interface between two machine code instructions is the entire machine [»hoarCA_1974]

Subtopic: problems with local view up

Quote: can not subdivide universe of problems into fixed areas, each with its own special notation

Related Topics up

Group: program module   (10 topics, 336 quotes)

Topic: abstraction (62 items)
Topic: abstraction in programming (67 items)
Topic: access by current position (7 items)
Topic: aspect-oriented programming (2 items)
Topic: context (8 items)
Topic: decision table (29 items)
Topic: decomposition of a system into levels (49 items)
Topic: disorientation in a user interface (13 items)
Topic: ease of use (47 items)
Topic: program module as encapsulation (28 items)
Topic: fisheye views in the user interface (16 items)
Topic: handling complexity (60 items)
Topic: hypertext subsets, webs, and contexts (12 items)
Topic: identifying program modules (26 items)
Topic: information hiding (50 items)
Topic: literate programming (16 items)
Topic: local declaration of data (11 items)
Topic: local vs. global (29 items)
Topic: multiple views for a user interface (26 items)
Topic: names defined by context (36 items)
Topic: opaque and partially-opaque data types (14 items)
Topic: separate a module's interface specification from its implementation (86 items)
Topic: stepwise refinement (25 items)
Topic: the effect of scale (17 items)
Topic: the 'uses' hierarchy for organizing systems (18 items)
Topic: understanding systems (48 items)
Topic: uniform language systems
(25 items)

Updated barberCB 3/06
Copyright © 2002-2008 by C. Bradford Barber. All rights reserved.
Thesa is a trademark of C. Bradford Barber.