Software Design Patterns in Theory
Upcoming SlideShare
Loading in...5
×
 

Software Design Patterns in Theory

on

  • 222 views

Following the previous lectures that focus on the practical uses of good and bad practices, we frame this practices in the context of the developers' cognitive characteristics. We first recall that ...

Following the previous lectures that focus on the practical uses of good and bad practices, we frame this practices in the context of the developers' cognitive characteristics. We first recall that developers' use sight first and foremost to acquire and reason about their systems. Then, we cast the use of patterns by developers and then discuss the visual system, memory models, and mental models.

Statistics

Views

Total Views
222
Views on SlideShare
159
Embed Views
63

Actions

Likes
0
Downloads
11
Comments
0

3 Embeds 63

http://www.ptidej.net 53
http://squirrel.polymtl.ca 6
http://ptidej.net 4

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Software Design Patterns in Theory Software Design Patterns in Theory Presentation Transcript

    • Some Theory and Practice on Patterns – In Theory Yann-Gaël Guéhéneuc NII, Tokyo, Japan 12/02/14 This work is licensed under a Creative Commons Attribution-NonCommercialShareAlike 3.0 Unported License
    • 2/216
    • Did you know that… 3/216
    • Vision is our dominant sense? 4/216
    • 5/216
    • 6/216
    • How does vision work? 7/216
    • Outline  Visual system  Memory models  Mental models  Schema theory  Software patterns  Empirical studies  Conclusion 8/216
    • Outline  Visual system  Memory models  Mental models  Schema theory  Software patterns  Empirical studies  Conclusion 9/216
    • Visual System  Vision Science: Photons to Phenomenology by Stephen E. Palmer 10/216
    • Visual System Retinal Image Image-based Stage Surface-based Stage Item-based Stage Category-based Stage Working Memory 11/216
    • Retinal Image Visual System Region Analysis Figure/Group Distinction Visual Interpolation Items Grouping Image-based Stage Surface-based Stage Item-based Stage Category-based Stage Working Memory 12/216
    • Retinal Image Visual System Region Analysis Figure/Group Distinction Visual Interpolation Items Grouping Image-based Stage Surface-based Stage Comparison Decision Item-based Stage Category-based Stage Working Memory 13/216
    • Retinal Image Visual System Region Analysis Figure/Group Distinction Visual Interpolation Items Grouping Image-based Stage Surface-based Stage Comparison Decision Item-based Stage Items (Visuo-spatial scratchpad) Articulatory Loop Category-based Stage Central Executive Long-term Memory Working Memory 14/216
    • Retinal Image Visual System Region Analysis Figure/Group Distinction Visual Interpolation Items Grouping Image-based Stage Surface-based Stage Comparison Decision Item-based Stage Items (Visuo-spatial scratchpad) Articulatory Loop Category-based Stage Central Executive Long-term Memory Working Memory 15/216
    • Retinal Image Visual System Region Analysis Figure/Group Distinction Visual Interpolation Items Grouping Image-based Stage Surface-based Stage Comparison Decision Item-based Stage Items (Visuo-spatial scratchpad) Articulatory Loop Category-based Stage Central Executive Long-term Memory Working Memory 16/216
    • Visual System  Retinal image 17/216
    • Visual System  Retinal image 18/216
    • Visual System  Region analysis – Distinguish items based on their regions 19/216
    • Visual System  Region analysis – Distinguish items based on their regions Zhuolin Jiang and Larry S. Davis ; Submodular Salient Region Detection ; Conference on Computer Vision and Pattern Recognition, IEEE, 2013 20/216
    • Visual System  Items grouping – Gestalt theory • Gestalten: to put in form, to give structure Fritz Perls *Berlin, July 8, 1893 †Chicago, March 14, 1970 21/216
    • Visual System 22/216
    • Visual System 23/216
    • Visual System 24/216
    • Visual System 25/216
    • Visual System  Items grouping – Laws of the Gestalt 26/216
    • Visual System  Items grouping – Laws of the Gestalt • Good form 27/216
    • Visual System  Items grouping – Laws of the Gestalt • Good form 28/216
    • Visual System  Items grouping – Laws of the Gestalt • Good form • Continuity 29/216
    • Visual System  Items grouping – Laws of the Gestalt • Good form • Continuity 30/216
    • Visual System  Items grouping – Laws of the Gestalt • Good form • Proximity • Continuity 31/216
    • Visual System  Items grouping – Laws of the Gestalt • Good form • Proximity • Continuity 32/216
    • Visual System  Items grouping – Laws of the Gestalt • Good form • Proximity • Continuity • Similitude 33/216
    • Visual System  Items grouping – Laws of the Gestalt 34/216
    • Visual System  Items grouping – Laws of the Gestalt • Common destiny 35/216
    • Visual System  Items grouping – Laws of the Gestalt • Common destiny 36/216
    • Visual System  Items grouping – Laws of the Gestalt • Closure • Common destiny 37/216
    • Visual System  Items grouping – Laws of the Gestalt • Closure • Common destiny Completion 38/216
    • Visual System  Items grouping – Involvement of the memory 39/216
    • Visual System  Items grouping – Involvement of the memory 40/216
    • Visual System  Comparison – Involvement of the memory 41/216
    • Visual System  Comparison – Involvement of the memory • Spatial 42/216
    • Visual System  Comparison – Involvement of the memory • Spatial • Temporal 43/216
    • Outline  Visual system  Memory models  Mental models  Schema theory  Software patterns  Empirical studies  Conclusion 44/216
    • Memory Models  One model Items (Visuo-spatial scratchpad) Articulatory Loop Central Executive Long-term Memory 45/216
    • Memory Models  One model Items (Visuo-spatial scratchpad) Articulatory Loop Central Executive Long-term Memory Episodic Memory Procedural Memory Semantic Memory 46/216
    • Memory Models  One model Items (Visuo-spatial scratchpad) Articulatory Loop Central Executive Long-term Memory Episodic Memory Procedural Memory Semantic Memory Objects Representations Categories Representations 47/216
    • Memory Models  One model Episodic Memory Procedural Memory Semantic Memory Objects Representations Categories Representations 48/216
    • Memory Models  Another model 49/216
    • Memory Models  Yet another model 50/216
    • Memory Models  Yet another model 51/216
    • Memory Models  Yet, yet another model 52/216
    • Memory Models  Miller, 1956 53/216
    • Memory Models  Miller, 1956 MRBXQVLWQK 54/216
    • Memory Models  Miller, 1956 ? 55/216
    • Memory Models  Miller, 1956 ? 56/216
    • Memory Models  Miller, 1956 ? The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing Information 57/216
    • Memory Models  Brooks, 1978 58/216
    • Memory Models  Brooks, 1978 – Problem domain 59/216
    • Memory Models  Brooks, 1978 – Problem domain – Executing program 60/216
    • Memory Models  Brooks, 1978 – Problem domain – Executing program – Knowledge domains • Hypothesis-and-verify process • Importance of documentation 61/216
    • Memory Models  Brooks, 1978 – Problem domain – Executing program – Knowledge domains • Hypothesis-and-verify process • Importance of documentation 62/216
    • Memory Models  Soloway, 1983 – Experts’ knowledge that novices do not have • Programming plans – RUNNING TOTAL LOOP PLAN – ITEM SEARCH LOOP PLAN –… • Rules of programming discourse – An IF should be used when a statement body is guaranteed to be executed only once and a WHILE used when a statement body may need to be repeatedly executed –… 63/216
    • Memory Models  Soloway, 1983 64/216
    • Memory Models  Soloway, 1983 An IF should be used when a statement body is guaranteed to be executed only once and a WHILE used when a statement body may need to be repeatedly executed 65/216
    • Memory Models  Soloway, 1983 An IF should be used when a statement body is guaranteed to be executed only once and a WHILE used when a statement body may need to be repeatedly executed 66/216
    • Memory Models  Soloway, 1983 An IF should be used when a statement body is guaranteed to be executed only once and a WHILE used when a statement body may need to be repeatedly executed 67/216
    • Memory Models  Soloway, 1983 An IF should be used when a statement body is guaranteed to be executed only once and a WHILE used when a statement body may need to be repeatedly executed 68/216
    • Memory Models  Pennington, 1987 – Multiple abstractions for computer programs • • • • (COBOL but may be true for other languages) Abstraction of function Abstraction of data-flow Abstraction of control-flow Abstraction of conditionalised actions 69/216
    • Memory Models  Pennington, 1987 70/216
    •  Abstraction of function 71/216
    •  Abstraction of data-flow 72/216
    •  Abstraction of control-flow 73/216
    •  Abstraction of conditionalised actions 74/216
    •  75/216
    • Memory Models  Pennington, 1987 – Programming knowledge • Text structure knowledge – Sequences – Iterations – Conditionals • Plan knowledge – – – – Plans are intermediate-level programming concepts Summing Hashing Counting … 76/216
    • Memory Models  Pennington, 1987 – Which knowledge and what abstraction? 77/216
    • Memory Models  Pennington, 1987 – Which knowledge and what abstraction? Text structure 78/216
    •  Abstraction of control-flow 79/216
    • Memory Models  Van Mayrhauser, 1995 – From previous works by • • • • • • • Pennington Soloway et al. Rist Van Mayhauser and Vans Letovsky Brooks Schneiderman and Mayer 80/216
    • Memory Models  Van Mayrhauser, 1995 81/216
    • Memory Models  Van Mayrhauser, 1995 Integrated model 82/216
    •  83/216
    •  84/216
    •  85/216
    •  86/216
    • Outline  Visual system  Memory models  Mental models  Schema theory  Software patterns  Empirical studies  Conclusion 87/216
    • Mental Models “The image of the world around us, which we carry in our head, is just a model. Nobody in his head imagines all the world, government or country. He has only selected concepts, and relationships between them, and uses those to represent the real system.” —Jay Wright Forrester, 1971 88/216
    • Mental Models      89/216
    • Mental Models  Mental models     90/216
    • Mental Models  Mental models  Formal rules of inference    91/216
    • Mental Models  Mental models  Formal rules of inference  Domain-specific rules of inference   92/216
    • Mental Models  Mental models  Formal rules of inference  Domain-specific rules of inference  Probabilities  93/216
    • Mental Models  Mental models  Formal rules of inference  Domain-specific rules of inference  Probabilities … 94/216
    • Mental Models 95/216
    • Memory Models 96/216
    • Mental Models 97/216
    • Mental Models  Context matters! 98/216
    • Mental Models  Context matters! 99/216
    • Mental Models  Context matters! 100/216
    • Mental Models  Context matters! 101/216
    • Mental Models  Context matters! 102/216
    • Mental Models  Minsky, 1974 – Frames • “data-structure for representing a stereotyped situation” • “network of nodes and relations” and “slots” – Frame-systems • Important actions are transformations between the frames of a system • Different frames of a system share the same terminals (and slots) – Matching process 103/216
    • Mental Models  Minsky, 1974 – Vision – Speech – Knowledge – Control 104/216
    • Mental Models  Minsky, 1974 – Vision – Speech – Knowledge – Control 105/216
    • Mental Models  Minsky, 1974 – Vision • A frame, once evoked on the basis of partial evidence or expectation, would first direct a test to confirm its own appropriateness • It would request information needed to assign values to those terminals that cannot retain their default assignments • If informed about a transformation (e.g., an impending motion), it would transfer control to the appropriate other frame of that system 106/216
    • Mental Models  Minsky, 1974 – Vision – Speech – Knowledge – Control 107/216
    • Mental Models  Minsky, 1974 – Knowledge • Similarity networks 108/216
    • Mental Models  Minsky, 1974 – Knowledge • Similarity networks 109/216
    • Mental Models  Minsky, 1974 – Vision – Speech – Knowledge – Control 110/216
    • Mental Models  Minsky, 1974 – Control • TOP-DOWN or LATERAL: Should one make a pass over all the terminals first or should one attempt a complete, detailed instantiation of some supposedly most critical one? • CENTRAL CONTROL: Should a frame, once activated, "take over" and control its instantiation, or should a central process organize the operation 111/216
    • Mental Models  Soloway, 1986 – In the context of analyzing problems and constructing programs – Goals • Requirements • Bugs – Plans • “Canned” solutions • With “meaning” 112/216
    • Mental Models  Soloway, 1986 “Master and novice chess players were shown a meaningful chess board, and asked to recall the pieces […]. The masters recalled more of the pieces than did the novices. Next, the masters and novices were shown a board in which the chess pieces were placed randomly on the board. […] The performance of the masters was the same as that of the novices.” —Chase and Simon, 1973 113/216
    • Mental Models  Soloway, 1986 – Micro-strategies • Ask questions • Seek answers • Repeat Difficult with delocalised plans – Macro-strategies • Systematic (scalability?) • As-needed (correctness?) 114/216
    • Mental Models  Rich and Waters, 1990 (IBM’s Harlan Mills idea of “chief programmer teams”) “[T]o provide software engineers with intelligent assistance.” (p. 2) “The intended interaction between a software engineer […] is modeled after interaction with a human assistant.” (p. 2) 115/216
    • Mental Models  Rich and Waters, 1990 “Between the engineer and the Apprentice […], the key to effective cooperation is shared knowledge.” (p. 4) – Shared knowledge • About the system being worked on • About concepts of software engineering  Clichés 116/216
    • Mental Models  Rich and Waters, 1990 “[An algorithmic] cliché contains both fixed parts and parts that vary from one occurrence of the cliché to the next […], [it] may also include constraints […].” (p. 12) “Non-algorithmic clichés are represented […] using standard frame-based knowledge representation techniques […].” (p. 21) 117/216
    • Mental Models  Rich and Waters, 1990 – Key properties of algorithmic clichés • • • • Canonical form Language independence Convenient manipulation Expressiveness – A representation of clichés  The Plan Calculus 118/216
    • Mental Models  Rich and Waters, 1990 “The Plan Calculus is intended to be a blueprint language for software.” (p. 29) • Formal representation for – Programs – Algorithmic clichés Subroutines Flowcharts Program schemas Program generators Macros Flowchart schemas Formal grammars Program transformation Plan calculus Logic Data abstraction 119/216
    • Mental Models  Rich and Waters, 1990 if:negative T F then:negate T F end:join 120/216
    • Mental Models  Rich and Waters, 1990 if:negative T F absolute-value then:negate T F end:join 121/216
    • Mental Models  Rich and Waters, 1990 input: next:apply-function input: generate continue: generation next: * output: generation 122/216
    • (On Gaming…)    Visual system Memory models Mental models    http://arstechnica.com/science/2014/02/how-action-games-can-improve-our-visual-skills/ 123/216
    • (On Gaming…)    Visual system Memory models Mental models    http://arstechnica.com/science/2014/02/how-action-games-can-improve-our-visual-skills/ 124/216
    • (On Gaming…)    Visual system Memory models Mental models    http://arstechnica.com/science/2014/02/how-action-games-can-improve-our-visual-skills/ 125/216
    • (On Gaming…)    Visual system Memory models Mental models “[G]amers [were] better at picking out details in a cluttered scene” http://arstechnica.com/science/2014/02/how-action-games-can-improve-our-visual-skills/ 126/216
    • (On Gaming…)    Visual system Memory models Mental models “[G]amers [were] better at picking out details in a cluttered scene” “[G]amers were able to produce accurate estimates [of relative counts]” http://arstechnica.com/science/2014/02/how-action-games-can-improve-our-visual-skills/ 127/216
    • (On Gaming…)    Visual system Memory models Mental models “[G]amers [were] better at picking out details in a cluttered scene” “[G]amers were able to produce accurate estimates [of relative counts]” “Gamers found it easier to perform mental rotations of geometric shapes” http://arstechnica.com/science/2014/02/how-action-games-can-improve-our-visual-skills/ 128/216
    • Outline  Visual system  Memory models  Mental models  Schema theory  Software patterns  Empirical studies  Conclusion 129/216
    • Schema Theory “The captain asked the passengers to fasten the seat belts. They were ready to take off.” —Kohls and Scheiter, 2008 130/216
    • Schema Theory 131/216
    • Schema Theory “This comprehensive situation is an interrelation of events and entities, and is stored in an internal data structure that can be activated by recognizing its typical features. Such data structures, or schemas, are mental representations in an individual’s mind.” —Kohls and Scheiter, 2008 132/216
    • Schema Theory “This comprehensive situation is an interrelation of events and entities, and is stored in an internal data structure that can be activated by recognizing its typical features. Such data structures, or schemas, are mental representations in an individual’s mind.” —Kohls and Scheiter, 2008 133/216
    • Schema Theory “Human brains operate fundamentally in terms of pattern recognition rather than of logic. They are highly constructive in settling on given schema and at the same time are constantly open to error.” —Edelman, 2006 (With minor adaptation) 134/216
    • Schema Theory  Piaget, 1969 – Child development theory – Schema and associated processes 135/216
    • Schema Theory  Piaget, 1969 – Child development theory – Schema and associated processes 136/216
    • Schema Theory  Piaget, 1969 – Schema and associated processes • From Plato and Aristotle: essential commonalities, basic properties that are distinctive of an object To Kant: link from stimuli to “pure” concepts – Perceived chair vs. “ideal” chair – No a-priori knowledge • Gick and Holyoak: learning by examples and problem solving (like in mathematics) 137/216
    • Schema Theory  Piaget, 1969 – Schema and associated processes • Abstract representation of multiple instances of the same kinds of – – – – – Concept Situation Plan Behaviour … to recognise similar / discriminate dissimilar experiences, access common concepts, draw inferences, create goals, develop plans, use skills138/216
    • Schema Theory  Piaget, 1969 – Schema and associated processes • Variables (or slots or attributes) • (Constrained) Ranges of values – People’s experience – Constants – Optional or mandatory • Constraints among variables and their values 139/216
    • Schema Theory  Piaget, 1969 – Schema and associated processes • Variables (or slots or attributes) • (Constrained) Ranges of values – People’s experience – Constants – Optional or mandatory • Constraints among variables and their values 140/216
    • Schema Theory  Piaget, 1969 – Schema and associated processes • Variables (or slots or attributes) • (Constrained) Ranges of values – People’s experience – Constants – Optional or mandatory • Constraints among variables and their values 141/216
    • Schema Theory  Piaget, 1969 – Schema and associated processes • Variables (or slots or attributes) • (Constrained) Ranges of values – People’s experience – Constants – Optional or mandatory • Constraints among variables and their values 142/216
    • Schema Theory  Piaget, 1969 – Schema and associated processes • Prototypical object • Object space and (mental) object generator 143/216
    • Schema Theory  Piaget, 1969 – Schema and associated processes • Prototypical object • Object space and (mental) object generator 144/216
    • Schema Theory  Piaget, 1969 – Schema and associated processes • Prototypical object • Object space and (mental) object generator 145/216
    • Schema Theory  Piaget, 1969 – Schema and associated processes • Prototypical object • Object space and (mental) object generator 146/216
    • Schema Theory  Piaget, 1969 – Schema and associated processes • Prototypical object • Object space and (mental) object generator 147/216
    • Schema Theory  Piaget, 1969 – Schema and associated processes • Part-of • Coupling • Is-a 148/216
    • Schema Theory  Piaget, 1969 – Schema and associated processes • Part-of • Coupling • Is-a 149/216
    • Schema Theory  Piaget, 1969 – Schema and associated processes • Part-of • Coupling • Is-a 150/216
    • Schema Theory  Piaget, 1969 – Schema and associated processes • Part-of • Coupling • Is-a 151/216
    • Schema Theory  Piaget, 1969 – Schema and associated processes • Hierarchy – Contexts – Forces – Probabilities 152/216
    • Schema Theory  Piaget, 1969 – Schema and associated processes • Hierarchy – Contexts – Forces – Probabilities 153/216
    • Schema Theory  Piaget, 1969 – Schema and associated processes • Hierarchy – Contexts – Forces – Probabilities 154/216
    • Schema Theory  Piaget, 1969 – Schema and associated processes • Use 155/216
    • 156/216
    • (Schema Theory  Programming)  Papert worked with Piaget from 1958 to 1963 and afterwards – Constructionism • Learning as a reconstruction rather than as a transmission of knowledge • Learning is most effective when part of learner’s activity to build a meaningful product http://www.lispcast.com/programming-language-stages-of-development 157/216
    • (Schema Theory  Programming)  Papert developed the Logo programming language within the constructionism theory circa. 1967 158/216
    • (Schema Theory  Programming)  Explanations of Logo programming using a simplified cognitive development model Corporal  Visual  Symbolic – The child learns to see her own perspective from the outside in the turtle – The child sees the results of her commands immediately (cf. chick sexing) – The child could think of the result of her commands before their execution 159/216
    • (Schema Theory  Programming)  Explanations of object-oriented programming using the same simplified model Corporal  Visual  Symbolic – The ability to program from the perspective of a single object at a time – The ability to think in terms of visual, archetypal interactions (client-server, MVC, etc.) – The ability to build abstractions with simple yet powerful rules and meta-programming 160/216
    • Schema Theory  Rumelhart and Norman, 1978 – Models of learning • Comprehension: pattern matching of memorised schema that cooperates and competes 161/216
    • Schema Theory  Rumelhart and Norman, 1978 – Models of learning • Comprehension: pattern matching of memorised schema that cooperates and competes 162/216
    • Schema Theory  Rumelhart and Norman, 1978 – Models of learning • Comprehension: pattern matching of memorised schema that cooperates and competes • Animal face • human face • Bob’s face 163/216
    • Schema Theory  Rumelhart and Norman, 1978 – Models of learning • Comprehension: pattern matching of memorised schema that cooperates and competes • Animal face • human face • Bob’s face 164/216
    • Schema Theory  Rumelhart and Norman, 1978 – Models of learning • Comprehension: pattern matching of memorised schema that cooperates and competes • Animal face • human face • Bob’s face 165/216
    • Schema Theory  Rumelhart and Norman, 1978 – Models of learning • Comprehension: pattern matching of memorised schema that cooperates and competes • Animal face • human face • Bob’s face 166/216
    • Schema Theory  Rumelhart and Norman, 1978 – Models of learning • Comprehension: pattern matching of memorised schema that cooperates and competes • Animal face • human face • Bob’s face 167/216
    • Schema Theory  Rumelhart and Norman, 1978 – Models of learning • Comprehension: pattern matching of memorised schema that cooperates and competes • Animal face • human face • Bob’s face 168/216
    • Schema Theory  Rumelhart and Norman, 1978 – Models of learning • Accretion: specific situation or experience stored in schemas used to reconstruct original experience – Episodic memory – Specific details 169/216
    • Schema Theory  Rumelhart and Norman, 1978 – Models of learning • Accretion: specific situation or experience stored in schemas used to reconstruct original experience – Episodic memory – Specific details 곰 세 마리가 한 집에 있어 아빠 곰 엄마 곰 애기 곰 아빠 곰은 뚱뚱해 엄마 곰은 날씬해 애기 곰은 너무 귀여워 170/216
    • Schema Theory  Rumelhart and Norman, 1978 – Models of learning • Accretion: specific situation or experience stored in schemas used to reconstruct original experience – Episodic memory – Specific details 곰 세 마리가 한 집에 있어 아빠 곰 엄마 곰 애기 곰 아빠 곰은 뚱뚱해 엄마 곰은 날씬해 애기 곰은 너무 귀여워 Why/How is specific information forgotten/replaced by generalised knowledge? 171/216
    • Schema Theory  Rumelhart and Norman, 1978 – Models of learning • Tuning: modifications to existing schemas – Variables – Ranges – Probabilities 172/216
    • Schema Theory  Rumelhart and Norman, 1978 – Models of learning • Tuning: modifications to existing schemas – Variables – Ranges – Probabilities 173/216
    • Schema Theory  Rumelhart and Norman, 1978 – Models of learning • Restructuring: ex nihilo / copy of existing schemas – Schema generation by analogies with existing schema, is-a – Schema induction from existing schema, has-a 174/216
    • Schema Theory  Rumelhart and Norman, 1978 – Models of learning • Restructuring: ex nihilo / copy of existing schemas – Schema generation by analogies with existing schema, is-a – Schema induction from existing schema, has-a 175/216
    • Outline  Visual system  Memory models  Mental models  Schema theory  Software patterns  Empirical studies  Conclusion 176/216
    • Software Patterns  Schemas – Variables – Ranges of values • Forces – Constraints among variables and their values 177/216
    • Software Patterns  Schemas – Variables – Ranges of values • Forces – Constraints among variables and their values What class plays this role? 178/216
    • Software Patterns  Schemas – Variables – Ranges of values • Forces – Constraints among variables and their values Possible classes playing this role plus their relations, implementation… 179/216
    • Software Patterns  Schemas – Variables Expected relations, interactions… – Ranges of values • Forces – Constraints among variables and their values 180/216
    • Software Patterns  Schema theory “The pattern is an attempt to discover some invariant features, which distinguishes good places from bad places with respect to some particular system of forces.” —Christopher Alexander, 1979 181/216
    • Software Patterns  Knowledge and–or procedure “The solution part of a good pattern describes both a process and a thing: the ‘thing’ is created by the ‘process’.” —Christopher Alexander, 1979 “Furthermore, a pattern tells about a form not only what it is but also what it does.” —Christopher Alexander, 1964 182/216
    • Software Patterns  Space and generation “A pattern describes a coherent yet infinite design space, not a finite set of implementations in that space.” —Frank Buschmann, Kevlin Henney, and Douglas C. Schmidt, 2007 183/216
    • Software Patterns  Use design patterns – – – – Composite Decorator Observer … to generate the architecture of the program 184/216
    • Software Patterns  Wholeness – Quality Without a Name • Forces “Having an ideal concept of a thing lets one judge the beauty of it” —Kohls and Scheiter, 2008 185/216
    • Software Patterns 186/216
    • Software Patterns “Important assumptions – That patterns can be codified in such a way that they can be shared between different designers – That reuse will lead to “better” designs. There is an obvious question here of what constitutes “better”, but a key measure is maintainability” —Zhang and Budgen, 2012 (With minor adaptations) 187/216
    • Outline  Visual system  Memory models  Mental models  Schema theory  Software patterns  Empirical studies  Conclusion 188/216
    • Empirical Studies “Eye movements are uniquely poised between perception and cognition. They are central to the function of the visual system, but for such scanning to be efficient, it cannot be simply a random sample of the visual world. To be useful, eye movements must be related to an organism’s memories, expectations and goals. Consequently, eye movements are driven equally by bottom-up perceptual properties of the world and top-down cognitive processes.” —Richardson, Dale, and Spivey, 2013 189/216
    • Empirical Studies “Eye movements are uniquely poised between perception and cognition. They are central to the function of the visual system, but for such scanning to be efficient, it cannot be simply a random sample of the visual world. To be useful, eye movements must be related to an organism’s memories, expectations and goals. Consequently, eye movements are driven equally by bottom-up perceptual properties of the world and top-down cognitive processes.” —Richardson, Dale, and Spivey, 2013 190/216
    • Empirical Studies “Eye movements are uniquely poised between perception and cognition. They are central to the function of the visual system, but for such scanning to be efficient, it cannot be simply a random sample of the visual world. To be useful, eye movements must be related to an organism’s memories, expectations and goals. Consequently, eye movements are driven equally by bottom-up perceptual properties of the world and top-down cognitive processes.” —Richardson, Dale, and Spivey, 2013 191/216
    • Empirical Studies “Eye movements are uniquely poised between perception and cognition. They are central to the function of the visual system, but for such scanning to be efficient, it cannot be simply a random sample of the visual world. To be useful, eye movements must be related to an organism’s memories, expectations and goals. Consequent, eye movements are driven equally by bottom-up perceptual properties of the world and top-down cognitive processes.” —Richardson, Dale, and Spivey, 2013 192/216
    • Empirical Studies “Eye movements are uniquely poised between perception and cognition. They are central to the function of the visual system, but for such scanning to be efficient, it cannot be simply a random sample of the visual world. To be useful, eye movements must be related to an organism’s memories, expectations and goals. Consequent, eye movements are driven equally by bottom-up perceptual properties of the world and top-down cognitive processes.” —Richardson, Dale, and Spivey, 2013 193/216
    • 194/216
    • http://web-tan.forum.impressrd.jp/e/2009/04/02/5280 195/216
    • http://another-voice.jp/jp/katsu/professional_view/01/index.shtml 196/216
    • http://another-voice.jp/jp/katsu/professional_view/01/index.shtml 197/216
    • Empirical Studies  Data – Fixations – Saccades – Scan path  Analyses – Centres of interests – Effort – Duration –… 198/216
    • Empirical Studies 199/216
    • 200/216
    • 201/216
    • Empirical Studies  SR Research Eye-link II – www.sr-research.com – Intrusive – Two infra-red cameras and one sensor – Error rate < 0.5º – Sampling rate of 500Hz – Access eye position < 3.0 ms. – 0.01º RMS resolution (tilt)  EyeLink Data Viewer 202/216
    • 203/216
    • 204/216
    • Empirical Studies  Tobii 1750 eye-tracker – www.tobii.se – Non-intrusive (no head mount) – Two cameras built into a 17 in flat screen – Records audio and video of a session – Error rate < 0.5º – Sampling rate of 50Hz  ClearView software 205/216
    • 206/216
    • 207/216
    • Empirical Studies  Seeing Machines FaceLab 5 – www.seeingmachines.com – Non-intrusive – Two infra-red cameras – Error rate < 1º – Sampling rate of 60Hz – Complete head-tracking ±90º (y), ±45º (x) – Complete eye-tracking ±45º (y), ±22º (x)  GazeTracker 208/216
    • Outline  Visual system  Memory models  Mental models  Schema theory  Software patterns  Empirical studies  Conclusion 209/216
    • Conclusion “That practices can be codified in such a way that they can be shared between different designers” —Zhang and Budgen, 2012  What format?  How memorised?  How acquired? 210/216
    • Conclusion “That practices can be codified in such a way that they can be shared between different designers” —Zhang and Budgen, 2012  What format?  How memorised?  How acquired? Schema theory 211/216
    • Conclusion “That practices can be codified in such a way that they can be shared between different designers” —Zhang and Budgen, 2012  What format?  How memorised?  How acquired? Schema theory Long-term memory 212/216
    • Conclusion “That practices can be codified in such a way that they can be shared between different designers” —Zhang and Budgen, 2012  What format?  How memorised?  How acquired? Schema theory Long-term memory Gestalt theory 213/216
    • Conclusion  Software patterns – Schema theory – Knowledge and–or procedure – Space and generation – Wholeness 214/216
    • Conclusion  Empirical studies – Patterns use and usefulness • • • • Faults Changes Comprehension … – Many opportunities to understand program comprehension better! 215/216
    • Conclusion  Empirical studies – Patterns use and usefulness • • • • Faults Changes Comprehension … – Many opportunities to understand program comprehension better! 216/216