11EE382V: Software Architecture and Design IntentElectrical and Computer EngineeringThe University of Texas at AustinEmpirical Studies of DesignersSeth HollowayDavid DeAngelis2THE UNIVERSITY OF TEXAS AT AUSTIN© 2006Outline Questions High level overview Elevator design problem A model of cognitive processes in software design: An analysis of breakdowns in early design activities by individuals Designing the Design Process: Exploiting Opportunistic Thoughts Questions and comments3THE UNIVERSITY OF TEXAS AT AUSTIN© 2006Question #1What are typical personality traits of gifted designers?4THE UNIVERSITY OF TEXAS AT AUSTIN© 2006Answer #1The Hacker [Designer] Attitude• The world is full of fascinating problems waiting to be solved.• No problem should ever have to be solved twice.• Boredom and drudgery are evil.• Freedom is good.• Attitude is no substitute for competence.25THE UNIVERSITY OF TEXAS AT AUSTIN© 2006Answer #1Bryan Dollery asserts that programmers are creative, artistic people who feel the “flow” of codingPossible link to autism (Asperger’s syndrome)• "I think all tech people are slightly autistic”--Microserfs novelist Douglas Coupland• Richard Stellman (founder of GNU) and Bram Cohen (creator of BitTorrent) both have self-diagnosed Asperger’s syndrome6THE UNIVERSITY OF TEXAS AT AUSTIN© 2006Question #2What benefits would studying designers have?7THE UNIVERSITY OF TEXAS AT AUSTIN© 2006Answer #2 This motivates an approach in which languages and tools are developed based on knowledge gained from empirical studies of programmers. This knowledge, applied within a tool development process, can lead to better support for programmers and software engineers. It can result in models of programmers and their tasks. It can result in data to compare different approaches to supporting programmers. 8THE UNIVERSITY OF TEXAS AT AUSTIN© 2006Question #3What are some issues in designing experiments for programmers?39THE UNIVERSITY OF TEXAS AT AUSTIN© 2006Answer #3 Humans are hard to study without using illegal or intrusive means. Many studies have to rely on external monitoring or interviews, however these threaten validity. Programmers being studied are students Not enough programmers are sampled Programmers are too similar in skill, culture, age, experience, background, etc No standard title for software designers, so it is harder to define and thus find “designers” We have determined what they know rather than how they know it10THE UNIVERSITY OF TEXAS AT AUSTIN© 2006Empirical Studies of DesignersThe field seeks to understand designers in an effort to improve the programming experience (increase productivity, ease development, improve accessibility, enforce known-good programming practices)11THE UNIVERSITY OF TEXAS AT AUSTIN© 2006Empirical Studies of DesignersResearch in the field includes• Comparisons of Expert vs. Novice programmers. • Models and strategies of program comprehension. • Models and strategies used when writing programs. • The importance of knowledge representation vs. strategies. 12THE UNIVERSITY OF TEXAS AT AUSTIN© 2006The Elevator ProblemHow would you program a system to efficiently control 2 elevators covering 10 floors?413THE UNIVERSITY OF TEXAS AT AUSTIN© 2006Analysis of Breakdowns“A model of cognitive processes in software design: An analysis of breakdowns in early design activities by individuals” by RaymondeGuindon, Bill Curtis, and Herb Krasner, 1987.14THE UNIVERSITY OF TEXAS AT AUSTIN© 2006Experimental SetupElevator control problemMove n elevators between m floors2 hours to develop logic “thinking aloud”15THE UNIVERSITY OF TEXAS AT AUSTIN© 2006Experimental Setup8 developers narrowed to 3 “best” subjects P6• PhD in Electrical Engineering with more than 10 years of professional experienceP8• MS Software Engineering with 5 years of experienceP3• PhD candidate in Computer Sciences with 3 years of experience16THE UNIVERSITY OF TEXAS AT AUSTIN© 2006Designers’ ApproachesP6• Specialized design schemas• Issue-driven• Generation of simplifying assumptionsP8• Less focused, less certain than P6. Uses a meta-schema to explore problem space at different level of abstraction. Attempts to apply partial solutions universallyP3• Characterized by chaotic generate-test-debug design• Has problems doing mental simulations517THE UNIVERSITY OF TEXAS AT AUSTIN© 2006SolutionsP6• Communicating ring of distributed, independent elevators governed by FSMs (one for individual elevator and one for group).P8• Star architecture communicating through a central server. Designincludes abstract data types, data flow diagrams and pseudocode.P3• Works on a central server system; represents behavior of the system by logical assertions18THE UNIVERSITY OF TEXAS AT AUSTIN© 2006BreakdownsKnowledge-related breakdowns due to• lack of specialized knowledge of similar problems • lack of experience as a designer • lack of domain knowledgeCognitive limitations breakdowns result from• not enough working short-term memory (solution is too large)• unreliable retrieval of information from long-term memoryCombination breakdowns caused by• Lack of specialized knowledge forces developer to use more cognitively-costly designs19THE UNIVERSITY OF TEXAS AT AUSTIN© 2006Key Ideas Breakdowns result from a lack of knowledge The more schemas a designer knows, the quicker and more elegant the design Greater knowledge of possible solutions leads to designs with greater rationale20THE UNIVERSITY OF TEXAS AT AUSTIN© 2006Exploiting Opportunistic Thoughts“Designing the Design Process: Exploiting Opportunistic Thoughts” Raymonde Guindon, 1990.621THE UNIVERSITY OF TEXAS AT AUSTIN© 2006DesignWhat is it? • Transform Spec to high level (semi) formal notation−Subsystems, info flow, data structures, interfaces−Most expensive errors• Everything you can do in advance to make coding easier.22THE UNIVERSITY OF TEXAS AT AUSTIN© 2006DesignWhy is it hard?Ill-Structured Problem• Incomplete, ambiguous specs of goals• No predetermined solution path−a system may require novelty• Integrate several knowledge domains−problem domain, architecture, computer science23THE UNIVERSITY OF TEXAS AT AUSTIN© 2006Top-Down DesignLike breadth first searchOverall system aspects designed
View Full Document