PATTERNS. A Short Course. Juha Pärssinen, Senior Research Scientist VTT Technical Research Centre of Finland

Size: px
Start display at page:

Download "PATTERNS. A Short Course. Juha Pärssinen, Senior Research Scientist VTT Technical Research Centre of Finland"

Transcription

1 PATTERNS A Short Course Juha Pärssinen, Senior Research Scientist Juha.Parssinen@vtt.fi VTT Technical Research Centre of Finland 1 (43)

2 Presentation outline What is a pattern? - What are benefits of patterns? - What is a good pattern? - What is not a pattern? What is a pattern language? What kind of pattern forms there are? What is an essential pattern form? How to find patterns? How to read a pattern? How to write a pattern? How to improve a pattern? References Appendix: Pattern Example Appendix: Exercise for reader 2 (43)

3 What is a pattern? Some well-known quotes from original founder of patterns: Each pattern is a three-part rule, which express a relation between a certain context, a problem, and a solution. Christopher Alexander, Timeless Way of Building, The pattern is, in short, at the same time a thing, which happens in the world, and the rule which tells us how to create that thing, and when we must create it. It is both a process and a thing; both a description of a thing which is alive, and a description of the process which will generate that thing. Christopher Alexander, Timeless Way of Building, Each pattern describes a problem which occurs over and over again in our environment and then describes the core of the solution to that problem in such a way that you can use this solution a million times over, without doing it the same way twice. Christopher Alexander, Sara Ishikawa, and Murray Silverstein, A Pattern Language: Towns, Buildings, Construction, (43)

4 What is a pattern (cont.)? Patterns are more like recipes than plans: I like to make the distinction between a plan and a recipe. A plan can be reverse engineered from a building but a recipe can t (easily) be reverse engineered from a cake. Our genome is a recipe, not a plan. Recipes seem to serve better as a schema of complex adaptive systems. Ward Cunningham, 20 February One of the first definitions of patterns in the area of computer science: A design pattern names, abstracts, and identifies the key aspects of a common design structure that make it useful for creating a reusable object-oriented design. The design pattern identifies the participating classes and instances, their roles and collaborations, and the distribution of responsibilities. Each design pattern focuses on a particular object-oriented design problem or issue. It describes when it applies, whether it can be applied in view of other design constrains, and the consequences and trade-offs its use. Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides Design Patterns - Elements of Reusable Object-Oriented Software, (43)

5 What is a pattern? An example. Each pattern is a three-part rule, which express a relation between a certain context, a problem, and a solution. Christopher Alexander, Timeless Way of Building, Simple pattern example to clarify this rule [8]: Lecture s life Context Problem Solution A class of water, a cup of coffee, or a bottle of beer. 5 (43)

6 What is a pattern? An example (cont.). Lecture s life Context Problem Lecturer is thirsty. Solution A class of water, a cup of coffee, or a bottle of beer. 6 (43)

7 Context What is a pattern? An example (cont.). In a lecture hall at 10 a.m. In a cafe room at 2 p.m. After work on Friday at 6 p.m. Problem Lecturer is thirsty. Solution Lecture s life A class of water in a lecture hall, a cup of coffee in a cafe room, or a bottle of beer after work on Friday. 7 (43)

8 What is a pattern? An example (cont.). Actually this is a pattern language (or system) of three patterns: - on duty, at break and off duty. - Pattern languages are discussed in section "What is a pattern language?". Context In a lecture hall at 10 a.m. Problem Lecturer is thirsty. Solution Drink a class of water. Lecture s life: on duty 8 (43)

9 What is a pattern? Lecture s life: at break Context In a cafe room at 2 p.m. Problem Lecturer is thirsty. Solution Drink a cup of coffee. An example (cont.). Lecture s life: off duty Context After work on Friday at 6 p.m. Problem Lecturer is thirsty. Solution Drink a bottle of beer. 9 (43)

10 What are benefits of patterns? Some well-known benefits of patterns [1]: forms a common vocabulary in an application domain; make design-level reuse possible; provide a road map to the structure of existing system; helps designer to avoid wrong design decisions; can be used as a teaching aid for newcomers. 10 (43)

11 A good pattern [1]: What is a good pattern? must be a proven solution to a problem in a context; - Must be mature (rule of three). - Unproven patterns are sometimes called as proto-patterns or patlets. must be able to tell the problem solver what to do to solve the problem; should have a dense set of interacting forces that are independent of the forces in other patterns; tend to have geometric overtones; must contribute to human comfort or quality of life: - this is possible even in software, the quality without name [7]. 11 (43)

12 What is a good pattern (cont)? Any good pattern has the quality without name [7]. Words to describe this quality (and to ultimately confuse): alive, whole, comfortable, free, exact, egoless, and eternal. Some things about software that possesses this quality [3]: - It is not written to an unrealistic deadline. - Its modules and abstractions are not too big. - Any bad parts were repaired during maintenance, or are being repaired now. - If I look at any small part of it, I can se what is going on. I don t need to look other parts to understand. - If I look at any large part in overview, I can see what is going on. I don t need to know details. - Everything about it seems familiar. - I can imagine changing it, adding some functionality. 12 (43)

13 A pattern is not [1]: What is not a pattern? a simple rule; - Obvious problem/solution pair is usually just a rule of thumb. a prescriptive example; an algorithm; a data structure; an isolated solution to a problem in a context. 13 (43)

14 What is not a pattern? (cont.) One possible test for "pattern-ness": - However, this is not a definitive test. A pattern-like entity that exhibits these characteristics is not definitely a pattern [9]. Nine essential characteristics of a pattern [9]: - a pattern implies an artifact; - a pattern bridges many levels of abstraction; - a pattern is both functional and nonfunctional; - a pattern is manifest in a solution; - a pattern captures system hot spots; - a pattern is part of a language; - a pattern is validated by use; - a pattern is grounded in a domain; - a pattern captures a big idea. Any entity that does not exhibit any one or more of the essential characteristics is not a pattern [9]. 14 (43)

15 What is a pattern language? No pattern is an isolated entity. Each pattern can exist in the world, only to the extent that it is supported by other patterns: the larger patterns in which it is embedded, the patterns of the same size that surround it, and the smaller patterns which are embedded in it. Christopher Alexander, Sara Ishikawa, and Murray Silverstein, A Pattern Language: Towns, Buildings, Construction, A pattern language is a collection of patterns that build on each other to generate a system. A pattern in isolation solves an isolated design problem: a pattern language builds a system. A pattern language has structure, but not the same level of formal structure that one finds in programming languages. A pattern language is typically designed for well-constrained application domain. 15 (43)

16 What kind of pattern forms there are? The form of an individual pattern is typically based at least one of these: Alexandrian Form [6] - No separate sections. - Only syntactic structure: Therefore GOF Form [10] - Contains 13 separated sections, pattern description tend to be very long. - Object-oriented software. The Portland Form - Ward Cunningham s on-line repository: the Portland Pattern Repository. The Coplien Form [1] - This is close to essential form presented next. 16 (43)

17 What is an essential pattern form? Name Context Problem Forces Solution Resulting Context 17 (43)

18 What is an essential pattern form (cont.)? Name Name a pattern with the same care as for a firstborn child. Names are often noun phrases. Pattern names tend to be based on the solution or problem. Short, concise, semantically rich, revealing or suggestive. Clever names are memorable - but don t get too clever. The pattern names should become part of the domain vocabulary. 18 (43)

19 What is an essential pattern form (cont.)? Context Defines when a pattern is applicable. Location of the pattern in the pattern language. Context includes a history of patterns that have been applied before the current pattern was considered. A good context is typically difficult to define. 19 (43)

20 What is an essential pattern form (cont.)? Problem Usually stated as a question, or as a problem statement. Usually the first thing a solution-seeker looks at. An understanding of the problem comes from an analysis of the forces. Some pattern forms reduce the problem to a single question or a summary formulation of the problem. In other forms, the problem statement is a small essay that motivates or illustrates a need. 20 (43)

21 What is an essential pattern form (cont.)? Forces The heart of a pattern. A whole is field of forces, or trade-offs. Individual patterns encapsulated related forces. Forces answer questions: What makes this a hard problem? What factors make the obvious solution the wrong one? Contradiction is O.K - conflict is great! 21 (43)

22 What is an essential pattern form (cont.)? Solution... Ken Auer writes that the solution statement should have the feeling that the reader has just been hit in the face, "Boom!"... Norm Kerth [5] The solution should solve the problem stated in the problem section. Solution balance forces. Some patterns provide only partial solutions but open a path to other patterns that balance unresolved forces. A good solution has enough detail so the designer knows what to do, but it is general enough to address a broad context. 22 (43)

23 What is an essential pattern form (cont.)? Sketch: Solution (cont.) If you can t draw a diagram of it, it isn t a pattern. The sketch usually conveys structure. Christopher Alexander, Timeless Way of Building, Class and object diagrams are typically used to present example solution structures in object-oriented design. Interaction diagrams that illustrate event ordering or other dynamics are equally useful. 23 (43)

24 What is an essential pattern form (cont.)? Resulting Context The resulting context is the wrap-up of the pattern. It tells: which forces were solved; which new problems may arise because of this pattern; what related patterns may come next. Ties patterns together into a pattern language. 24 (43)

25 Books: Pattern Almanac [17]; How to find patterns? PLoPD 1-4 [13][14][15][16]; GOF [10], POSA [11], and POSA2 [12]. On-line resources: URL: - On-line pattern catalog; - PLoP conferences on-line proceedings; - Pattern mailing lists. News groups: - comp.software.patterns (started at 11th October 2001) - comp.object 25 (43)

26 How to read a pattern? Abstract/Context oriented approach Browse patterns reading their name and abstract (if there is one), or read context, if there is no abstract. Read problem and solution together. Read other parts. Problem oriented approach Browse patterns reading their name and problem briefly. Read context, and then problem and solution together. Read other parts. 26 (43)

27 Approach vary with forms. How to write a pattern? Linear approach is rarely successful. Often good to start with forces, or maybe with solution. Name and problem can become later. Next five slides from page 28 to page 32 present a set of questions which can be used to find sections of patterns descriptions. 27 (43)

28 How to write a pattern (cont.)[4]? During writing process of your pattern, answer following questions: When is the reader ready to consider this piece of wisdom? What decisions have they had to make, in order for this pattern to be useful to them? What other conditions must be present for this to be a valid pattern for the reader to consider? This leads to the CONTEXT. - When is this pattern applicable. 28 (43)

29 How to write a pattern (cont.)[4]? During writing process of your pattern, answer following questions: To wisely decide on a particular design decision, what are all the elements that need to be considered? What are the various problems that all need to be considered in order for your reader to choose wisely? This leads to the FORCES. - What to consider when focusing one s attention to this design decision, i.e., discuss all the facets of the design decision from the perspective of understanding the problem. 29 (43)

30 How to write a pattern (cont.)[4]? During writing process of your pattern, answer following questions: What solution do you recommend? What are the various facets? What are the variations? What are the tests your reader can use to affirm they have chosen a wise design? This leads to the SOLUTION. - Discuss the solution and solution options given the problem highlighted in the FORCES section. - Refer to the items in the FORCES section as needed. - Make sure that you have addressed each of the forces in your SOLUTION section. 30 (43)

31 How to write a pattern (cont.)[4]? During writing process of your pattern, answer following questions: Given the answers to the questions 1, 2, and 3, ask: How do we name this information in such a way that our wisdom will be memorable, in the sea of all the other wisdom out there? This leads to the NAME. 31 (43)

32 How to write a pattern (cont.)[4]? During writing process of your pattern, answer following questions: With these design issues resolved, what are the next important design issues to consider? This gives the place of your pattern in the pattern language. 32 (43)

33 How to improve a pattern? Shepherding process of PLoP conferences Goals [18]: - Obvious: Improve the work. - Not Obvious: Instill the patterns culture. - Giving to the community - Protecting the dignity of the author Three Facets of Shepherding [18]: the logistics of shepherding; - Three Iterations pattern interpersonal relationships; - The Shepherd Knows the Sheep pattern the content of the patterns. - Big Picture pattern 33 (43)

34 How to improve a pattern (cont.)? This is an example pattern from The Language of the Shepherds by Neil Harrison [18]. Three Iterations The amount of work required to shepherd any work is an unknown quantity a prior. Therefore: Get started early, and plan on about three iterations. Pace yourself to be able to complete three iterations. 34 (43)

35 How to improve a pattern (cont.)? This is an example pattern from The Language of the Shepherds by Neil Harrison [18]. The Shepherd Knows the Sheep There is a danger that the author will not accept - or understand - your comments. Therefore: Establish a personal rapport with the author up front; get to know the author, and tell the author about yourself. Give both positive reinforcement and suggestions for improvement. 35 (43)

36 How to improve a pattern (cont.)? This is an example pattern from The Language of the Shepherds by Neil Harrison [18]. BigPicture It s hard to know where to start with a pattern. Therefore: Get the big picture by reading the problem and solution together first. They should pretty much stand on their own. 36 (43)

37 How to improve a pattern (cont.)? Pattern writers workshops The pattern is discussed by a group of people including its author, a moderator, and a group of reviewers - who are familiar with paper. All participants are authors by themselves. Circle organization. Structure of a workshop (one paper / ,5 hours) [19]: - Welcome the Author - Author reads selection - Summarization - Positive feedback first - Suggestion for improvement - Author asks for clarification - Thank the author 37 (43)

38 References [1] J. Coplien, Software Patterns, Lucent Technologies, [2] J. Coplien, N. Gaerther, Mastery of Pattern Concept thought Pattern Writing, course material, Lucent Technologies, [3] R. Gabriel, Patterns of Software, Oxford University Press, [4] N. Kerth, personal communication, 17th April [5] N. Kerth, personal communication, 7th May [6] C. Alexander, et al. A Pattern Language, Oxford University Press, [7] C. Alexander, The Timeless Way of Building, Oxford University Press, [8] D. Deugo, an example in the workshop at PLoP2001, Monticello, 13th September (43)

39 References (cont.) [9] T. Winn, P. Calder, Is This a Pattern?, IEEE Software, January/ February [10]E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley, [11]F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, M. Stal, Pattern-Oriented Software Architecture: A System of Patterns, Wiley, 1996 [12]D. Schmidt, M. Stal, H. Rohnert, M. Stal, F. Buschmann, Pattern- Oriented Software Architecture Volume 2: Patterns for Concurrent and Networked Objects, Wiley, 2000 [13]J. Coplien, D. C. Schmidt (eds), Pattern Languages of Program Design, Addison-Wesley, (43)

40 References (cont.) [14]J. Vlissides, J. Coplien, N. Kerth (eds), Pattern Languages of Program Design 2, Addison-Wesley, [15]R. Martin, D. Riehle, F. Buschmann (eds), Pattern Languages of Program Design 3, Addison-Wesley Longman, [16]N. Harrison, B. Foote, H. Rohnert (eds), Pattern Languages of Program Design 4, Addison-Wesley Longman, [17]L. Rising, The Pattern Almanac 2000, Addison-Wesley, [18]N. Harrison, The Language of the Shepherds, PLoP 99 proceedings, [19]J. Coplien, B. Woolf, A Pattern Language for Writer s Workshops, Pattern Languages of Program Design 4, pp , Addison-Wesley Longman, (43)

41 Name. Hands In View [1] Appendix: Pattern Example Problem. The skier fails to commit downhill on steeps and bumps, resulting in slides, backward falls,andyardsales. Context. In order to explore the entire mountain environment, a skier must be comfortable and adaptable to any terrain and rapid terrain change.to take advantage of this pattern the skier should be skiing at a level at which parallel turns can be linked consistently. Forces. Fear of falling is the most basic of all responses. Reliance on equipment is essential. Continuous movement is essential. Fatigue can be a factor in long descents. Commitment downhill over skis is essential for skis to function as designed Solution. Concentrate on keeping the hands in view. Bring then into sight immediately after each pole plant and turn. Resulting Context. Keeping the hands in view changes the alignment of the body from sitting timidly back and allowing the edges to skid out from under the skier. Thus, keeping the hands in view pulls the body forward and thus downhill, bringing the skier s weight over the downhill ski, forcing the edge to bite and turn. 41 (43)

42 Appendix: Pattern Example (cont.) Rationale. As steepness increases, the natural tendency of any sane person is to sit back against the hill and retain the perpendicularity the inner ear prefers. Unfortunately, skis must be weighted to perform as designed, the weight causing flex, which in turn pushes the edges into the snow in an arc, making a turn. Therefore it is essential to throw oneself down the mountain and over the skis, depending on them to catch the fall as they bite into the snow to turn underneath the perpetually falling skier. Intellectually this can be clearly understood but fear prevents execution. Concentrating on something as simple and indirect as look an your hands causes the desired behavior without directly confronting the fear. This is directly analogous to what occurs when an individual walks: the weight is thrown forward in a fall, with the consequent forward thrust of the leg to catch this fall, repeated for left and right sides in a continuous tension and release of yielding to gravity in order to defy it. Author. Don Olson 95/07/07 Originator. Anonymous ski instructor somewhere in Utah. Wherever you are, thanks for providing the breakthrough to better skiing for the author. 42 (43)

43 Appendix: Exercise for reader Write one or more patterns about something you know well (1 hour). Subject can be practically anything. You are free to use any pattern format you like. - However, Coplien or Alexandrian are recommend... Use questions from How to write a pattern? on page 27 [4]. Present your pattern briefly ( min.), or if possible, organize a patterns writer s workshop [19]. 43 (43)

Patterns in a Nutshell

Patterns in a Nutshell Patterns in a Nutshell http://www.enteract.com/~bradapp/ January 27, 1998 Patterns in a Nutshell Page 2 of 12 Trendy: Literary: 1.0 What are Patterns? Recent hot topic, OOD buzzword, lots of hype! Form

More information

CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE

CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE SESSION I: OVERVIEW AND HISTORY OF STYLES AND PATTERNS Software Engineering Design: Theory and Practice by Carlos E. Otero Slides copyright 2012

More information

Introduction. Observation Patterns. Accounting Patterns. How to use Patterns

Introduction. Observation Patterns. Accounting Patterns. How to use Patterns Analysis Martin Fowler fowler@acm acm.org http://ourworld ourworld.compuserve.com/homepages/martin_fowler Page Martin Fowler 9//99 What we will cover Introduction Observation Accounting How to use Page

More information

How to write a pattern? A rough guide for first-time pattern authors

How to write a pattern? A rough guide for first-time pattern authors How to write a pattern? A rough guide for first-time pattern authors TIM WELLHAUSEN, kontakt@tim-wellhausen.de, http://www.tim-wellhausen.de ANDREAS FIESSER, patterns@fiesser.de, http://patterns.fiesser.de

More information

The Oregon Software Development Process

The Oregon Software Development Process The Oregon Software Development Process Till Schümmer 1 and Robert Slagter 2 1 Computer Science Department, FernUniversität in Hagen, Universitätsstrasse 1, 58084 Hagen, Germany Till.Schuemmer@fernuni-hagen.de

More information

Patterns as Topics in Computer Science Courses

Patterns as Topics in Computer Science Courses Patterns as Topics in Computer Science Courses Introduction Dwight Deugo deugo@scs.carleton.ca, 103163.2657@compuserve.com http://www.scs.carleon.ca/~deugo School of Computer Science, Carleton University

More information

APLRAC: A PATTERN LANGUAGE FOR DESIGNING AND IMPLEMENTING ROLE-BASED ACCESS CONTROL

APLRAC: A PATTERN LANGUAGE FOR DESIGNING AND IMPLEMENTING ROLE-BASED ACCESS CONTROL APLRAC: A PATTERN LANGUAGE FOR DESIGNING AND IMPLEMENTING ROLE-BASED ACCESS CONTROL Saluka R. Kodituwakku 1, Peter Bertok 1, and Liping Zhao 2 1 Department of Computer Science RMIT University, Australia

More information

Encapsulating Crosscutting Concerns in System Software

Encapsulating Crosscutting Concerns in System Software Encapsulating Crosscutting Concerns in System Software Christa Schwanninger, Egon Wuchner, Michael Kircher Siemens AG Otto-Hahn-Ring 6 81739 Munich Germany {christa.schwanninger,egon.wuchner,michael.kircher}@siemens.com

More information

Software Refactoring using New Architecture of Java Design Patterns

Software Refactoring using New Architecture of Java Design Patterns Software Refactoring using New Architecture of Java Design Patterns Norddin Habti, Prashant 1, 1 Departement d informatique et de recherche operationnelle, Universite de Montreal, Quebec, Canada (Dated:

More information

Ski on specific terrain (green, blue, black diamond, double black diamond) B Balancing Maintaining balance while in motion

Ski on specific terrain (green, blue, black diamond, double black diamond) B Balancing Maintaining balance while in motion Developing Skills A ski lesson should focus on a skier s skill development through the use of various encouraging tactics which include using exercises to help a student: Reinforce key movement Ski in

More information

Aerospace Software Engineering

Aerospace Software Engineering 16.35 Aerospace Software Engineering Software Architecture The 4+1 view Patterns Prof. Kristina Lundqvist Dept. of Aero/Astro, MIT Why Care About Software Architecture? An architecture provides a vehicle

More information

Chap 1. Introduction to Software Architecture

Chap 1. Introduction to Software Architecture Chap 1. Introduction to Software Architecture 1. Introduction 2. IEEE Recommended Practice for Architecture Modeling 3. Architecture Description Language: the UML 4. The Rational Unified Process (RUP)

More information

Detection of Problems in the Application of Software Process Patterns

Detection of Problems in the Application of Software Process Patterns Detection of Problems in the Application of Software Process Patterns Chintan Amrit & Jos van Hillegersberg Department of IS & CM, BBT, University of Twente, P.O. Box 217,7500 AE Enschede c.amrit, J.vanHillegersberg@utwente.nl

More information

Chain of Responsibility

Chain of Responsibility Chain of Responsibility Comp-303 : Programming Techniques Lecture 21 Alexandre Denault Computer Science McGill University Winter 2004 April 1, 2004 Lecture 21 Comp 303 : Chain of Responsibility Page 1

More information

Using Use Cases for requirements capture. Pete McBreen. 1998 McBreen.Consulting

Using Use Cases for requirements capture. Pete McBreen. 1998 McBreen.Consulting Using Use Cases for requirements capture Pete McBreen 1998 McBreen.Consulting petemcbreen@acm.org All rights reserved. You have permission to copy and distribute the document as long as you make no changes

More information

Name of pattern types 1 Process control patterns 2 Logic architectural patterns 3 Organizational patterns 4 Analytic patterns 5 Design patterns 6

Name of pattern types 1 Process control patterns 2 Logic architectural patterns 3 Organizational patterns 4 Analytic patterns 5 Design patterns 6 The Researches on Unified Pattern of Information System Deng Zhonghua,Guo Liang,Xia Yanping School of Information Management, Wuhan University Wuhan, Hubei, China 430072 Abstract: This paper discusses

More information

A Componentware Methodology based on Process Patterns Klaus Bergner, Andreas Rausch Marc Sihling, Alexander Vilbig Institut fur Informatik Technische Universitat Munchen D-80290 Munchen http://www4.informatik.tu-muenchen.de

More information

Communication Process

Communication Process Welcome and Introductions Lesson 7 Communication Process Overview: This lesson teaches learners to define the elements of effective communication and its process. It will focus on communication as the

More information

IC-AI 99 502SA Patterns as a Means for Intelligent Software Engineering

IC-AI 99 502SA Patterns as a Means for Intelligent Software Engineering IC-AI 99 502SA Patterns as a Means for Intelligent Software Engineering Patterns as a Means for Intelligent Software Engineering D. Deugo, F. Oppacher, J. Kuester *, I. Von Otte * School of Computer Science,

More information

Writing an essay. This seems obvious - but it is surprising how many people don't really do this.

Writing an essay. This seems obvious - but it is surprising how many people don't really do this. Writing an essay Look back If this is not your first essay, take a look at your previous one. Did your tutor make any suggestions that you need to bear in mind for this essay? Did you learn anything else

More information

Online Courses: During the Course

Online Courses: During the Course Online Courses: During the Course Keep up Keeping up is essential to your success in an online course. Without weekly lectures, online courses can easily be put on the back burner. It is critical to stay

More information

Five ways to reduce PowerPoint overload

Five ways to reduce PowerPoint overload Five ways to reduce PowerPoint overload by Cliff Atkinson and Richard E. Mayer Executive Summary Many people have had enough of PowerPoint. That s no surprise to many of us who have seen PowerPoint slides

More information

Design Patterns. Design patterns are known solutions for common problems. Design patterns give us a system of names and ideas for common problems.

Design Patterns. Design patterns are known solutions for common problems. Design patterns give us a system of names and ideas for common problems. Design Patterns Design patterns are known solutions for common problems. Design patterns give us a system of names and ideas for common problems. What are the major description parts? Design Patterns Descriptions

More information

Possible examples of how the Framework For Teaching could apply to Instructional Coaches

Possible examples of how the Framework For Teaching could apply to Instructional Coaches Possible examples of how the Framework For Teaching could apply to 1b. Specific Examples 1b. Demonstrating Knowledge of Students 1a. Specific Examples 1a. Demonstrating knowledge of Content and Pedagogy

More information

Architectural Patterns (3)

Architectural Patterns (3) Scatter/Gather Architectural Patterns (3) Prof. Cesare Pautasso http://www.pautasso.info cesare.pautasso@usi.ch @pautasso Goal: send the same message to multiple recipients which will (or may) reply to

More information

Finding Your Gift: Three Paths to Maximizing Impact in Your Career

Finding Your Gift: Three Paths to Maximizing Impact in Your Career Finding Your Gift: Three Paths to Maximizing Impact in Your Career Do you have a job, or a career? Are you working for a paycheck, or are you working on your life s mission? Would you like to discover

More information

Grade 6: Module 1: Unit 2: Lesson 19 Peer Critique and Pronoun Mini-Lesson: Revising Draft Literary Analysis

Grade 6: Module 1: Unit 2: Lesson 19 Peer Critique and Pronoun Mini-Lesson: Revising Draft Literary Analysis Grade 6: Module 1: Unit 2: Lesson 19 Revising Draft Literary Analysis This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. Exempt third-party content

More information

Non-fiction: Cloning Around

Non-fiction: Cloning Around Non-fiction: Cloning Around Cloning Around Should people be allowed to clone themselves or others? In 1997, scientists cloned a lamb named Dolly from an adult sheep. Cloning is a process in which cells

More information

The Westminster College Project Based MBA Program:

The Westminster College Project Based MBA Program: The Westminster College Project Based MBA Program: Preparing Executives to Lead Tell me, and I will forget. Show me, and I may remember. Involve me, and I will understand. Confucius 1 Introduction Westminster

More information

Co-creative Project Management with Project Language

Co-creative Project Management with Project Language September 9-12, 2014, Hokkaido University, Sapporo, Japan Co-creative Project Management with Project Language Masanari Motohashi 1, Ken-ichiro Ogawa 1, Yoshihiro Miyake 1 1 Department of Computational

More information

Research Topics in Software Engineering

Research Topics in Software Engineering MAP-I Programa Doutoral em Informática Research Topics in Software Engineering Unidade Curricular em Paradigmas da Computação Paradigms of Computation (UCPC) UMinho, FEUP July 23, 2009 Abstract This document

More information

CAD/ CAM Prof. P. V. Madhusudhan Rao Department of Mechanical Engineering Indian Institute of Technology, Delhi Lecture No. # 03 What is CAD/ CAM

CAD/ CAM Prof. P. V. Madhusudhan Rao Department of Mechanical Engineering Indian Institute of Technology, Delhi Lecture No. # 03 What is CAD/ CAM CAD/ CAM Prof. P. V. Madhusudhan Rao Department of Mechanical Engineering Indian Institute of Technology, Delhi Lecture No. # 03 What is CAD/ CAM Now this lecture is in a way we can say an introduction

More information

Configuration Management Patterns

Configuration Management Patterns Configuration Management Patterns Steve Berczuk Optimax Systems Corporation 201 Broadway Cambridge MA 02139 berczuk@optimax.com Configuration management is an important aspect of an efficient development

More information

Engineering Process Software Qualities Software Architectural Design

Engineering Process Software Qualities Software Architectural Design Engineering Process We need to understand the steps that take us from an idea to a product. What do we do? In what order do we do it? How do we know when we re finished each step? Production process Typical

More information

(Refer Slide Time: 01:52)

(Refer Slide Time: 01:52) Software Engineering Prof. N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture - 2 Introduction to Software Engineering Challenges, Process Models etc (Part 2) This

More information

A Pattern Language for Information Architecture

A Pattern Language for Information Architecture A Pattern Language for Information Architecture Matthew Ellison Matthew Ellison Consulting matthew@ellisonconsulting.com What we ll cover in this session What s a pattern language? How patterns have been

More information

BPM: Chess vs. Checkers

BPM: Chess vs. Checkers BPM: Chess vs. Checkers Jonathon Struthers Introducing the Games Business relies upon IT systems to perform many of its tasks. While many times systems don t really do what the business wants them to do,

More information

for Early Child Care and Education

for Early Child Care and Education Trainer-Training Qualifications and Standards for Early Child Care and Education December 2010 Trainer-Training Qualifications and Standards for Early Child Care and Education Table of Contents How are

More information

2. What type of job are you seeking? It can help to have a specific objective or use the position to craft a targeted resume.

2. What type of job are you seeking? It can help to have a specific objective or use the position to craft a targeted resume. The Purpose of a Resume A Marketing Tool: Designed to capture attention and get you to the next stage in the recruitment process. It presents the skills, accomplishments and qualifications that you bring

More information

Non-fiction: Cloning Around

Non-fiction: Cloning Around Non-fiction: Cloning Around Cloning Around Should people be allowed to clone themselves or others? In 1997, scientists cloned a lamb named Dolly from an adult sheep. Cloning is a process in which cells

More information

A Process View on Architecture-Based Software Development

A Process View on Architecture-Based Software Development A Process View on Architecture-Based Software Development Lothar Baum, Martin Becker, Lars Geyer, Georg Molter System Software Research Group University of Kaiserslautern D-67653 Kaiserslautern, Germany

More information

Using Word Walls in the Social Studies Classroom

Using Word Walls in the Social Studies Classroom Word Wall Rationale Using Word Walls in the Social Studies Classroom A word wall is an ongoing, organized display of key words that provides visual reference for students throughout a unit of study or

More information

Minnesota Academic Standards

Minnesota Academic Standards A Correlation of to the Minnesota Academic Standards Grades K-6 G/M-204 Introduction This document demonstrates the high degree of success students will achieve when using Scott Foresman Addison Wesley

More information

Towards an Automated Pattern Selection Procedure in Software Models

Towards an Automated Pattern Selection Procedure in Software Models Towards an Automated Pattern Selection Procedure in Software Models Alexander van den Berghe, Jan Van Haaren, Stefan Van Baelen, Yolande Berbers, and Wouter Joosen {firstname.lastname}@cs.kuleuven.be IBBT-DistriNet,

More information

Communication and Problem Solving

Communication and Problem Solving INSTRUCTOR S GUIDE Communication and Problem Solving First Edition, 2006 California Childcare Health Program Administered by the University of California, San Francisco School of Nursing, Department of

More information

Object Oriented Design

Object Oriented Design Object Oriented Design Kenneth M. Anderson Lecture 20 CSCI 5828: Foundations of Software Engineering OO Design 1 Object-Oriented Design Traditional procedural systems separate data and procedures, and

More information

U. S. Coast Guard Auxiliary Instructor Development Course Mentor Guide Appendix C

U. S. Coast Guard Auxiliary Instructor Development Course Mentor Guide Appendix C U. S. Coast Guard Auxiliary Instructor Development Course Mentor Guide Appendix C January 2007 Appendix C - 1 Intent This section is designed for the Mentor Instructor to use during both the ten to thirty

More information

A Review of an MVC Framework based Software Development

A Review of an MVC Framework based Software Development , pp. 213-220 http://dx.doi.org/10.14257/ijseia.2014.8.10.19 A Review of an MVC Framework based Software Development Ronnie D. Caytiles and Sunguk Lee * Department of Multimedia Engineering, Hannam University

More information

Agile Software Development

Agile Software Development Agile Software Development Use case for Agile Software Development Methodology in an Oil and Gas Exploration environment. White Paper Introduction No matter what business you are in, there are critical

More information

Chapter 8 Approaches to System Development

Chapter 8 Approaches to System Development Systems Analysis and Design in a Changing World, sixth edition 8-1 Chapter 8 Approaches to System Development Table of Contents Chapter Overview Learning Objectives Notes on Opening Case and EOC Cases

More information

A methodology for secure software design

A methodology for secure software design A methodology for secure software design Eduardo B. Fernandez Dept. of Computer Science and Eng. Florida Atlantic University Boca Raton, FL 33431 ed@cse.fau.edu 1. Introduction A good percentage of the

More information

Data Discovery, Analytics, and the Enterprise Data Hub

Data Discovery, Analytics, and the Enterprise Data Hub Data Discovery, Analytics, and the Enterprise Data Hub Version: 101 Table of Contents Summary 3 Used Data and Limitations of Legacy Analytic Architecture 3 The Meaning of Data Discovery & Analytics 4 Machine

More information

rarecorvettes.com, joe@rarecorvettes.com, (831) 475-4442 Pacific Time Zone

rarecorvettes.com, joe@rarecorvettes.com, (831) 475-4442 Pacific Time Zone INTRODUCTION TO WHEEL ALIGNMENT A SHORT COURSE ON WHEEL ALIGNMENT, FRONT AND REAR PREPARED FOR THE N.C.R.S. NATIONAL CONVENTION JUNE 29 TO JULY 5, 2012 by: JOE CALCAGNO, RARE CORVETTES rarecorvettes.com,

More information

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements Questions? Assignment Why is proper project management important? What is goal of domain analysis? What is the difference between functional and non- functional requirements? Why is it important for requirements

More information

Book Review of Rosenhouse, The Monty Hall Problem. Leslie Burkholder 1

Book Review of Rosenhouse, The Monty Hall Problem. Leslie Burkholder 1 Book Review of Rosenhouse, The Monty Hall Problem Leslie Burkholder 1 The Monty Hall Problem, Jason Rosenhouse, New York, Oxford University Press, 2009, xii, 195 pp, US $24.95, ISBN 978-0-19-5#6789-8 (Source

More information

Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective

Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective Orit Hazzan's Column Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective This column is coauthored with Jeff Kramer, Department of Computing, Imperial College, London ABSTRACT

More information

Agile Projects 7. Agile Project Management 21

Agile Projects 7. Agile Project Management 21 Contents Contents 1 2 3 Agile Projects 7 Introduction 8 About the Book 9 The Problems 10 The Agile Manifesto 12 Agile Approach 14 The Benefits 16 Project Components 18 Summary 20 Agile Project Management

More information

Understanding and Using Patterns in Software Development

Understanding and Using Patterns in Software Development Understanding and Using Patterns in Software Development Dirk Riehle and Heinz Züllighoven UBILAB, Union Bank of Switzerland. Bahnhofstrasse 45, CH-8021 Zürich, Switzerland E-mail: riehle@ubilab.ubs.ch

More information

Canadian Association of Nordic Ski Instructors. Telemark Instructor - Level I Course Workbook

Canadian Association of Nordic Ski Instructors. Telemark Instructor - Level I Course Workbook Canadian Association of Nordic Ski Instructors Telemark Instructor - Level I Course Workbook Candidate Name: Course Conductor: Course Location, Date: AGENDA On time is good, early is best! ALWAYS. Carry

More information

Maturity Assessments of Service- oriented Enterprise Architectures with Iterative Pattern Refinement

Maturity Assessments of Service- oriented Enterprise Architectures with Iterative Pattern Refinement Maturity Assessments of Service- oriented Enterprise Architectures with Iterative Pattern Refinement Michael Falkenthal 1, Dierk Jugel 1, Alfred Zimmermann 1, René Reiners 2, Wilfried Reimann 3, Michael

More information

Level 3 Training Course Guide 2015-2016

Level 3 Training Course Guide 2015-2016 CANADIAN SKI INSTRUCTORS ALLIANCE Level 3 Training Course Guide 2015-2016 Mission Statement: The Canadian Ski Instructors Alliance provides excellence in education for the profession of ski teaching, contributing

More information

How to Plan and Guide In Class Peer Review Sessions

How to Plan and Guide In Class Peer Review Sessions How to Plan and Guide In Class Peer Review Sessions Incorporating peer review into your course can help your students become better writers, readers, and collaborators. However, peer review must be planned

More information

Swedish for Immigrants

Swedish for Immigrants Swedish for Immigrants Purpose of the education The aim of the Swedish for Immigrants (Sfi) language instruction program is to give adults who lack basic skills in Swedish opportunities to develop an ability

More information

Monitoring for Meaning

Monitoring for Meaning Monitoring for Meaning Grades 3-5 eeee Wwh Monitoring comprehension is above all engagement. When readers monitor their thinking, they have an inner conversation with the text. They listen to the voice

More information

Planning a Scientific Presentation

Planning a Scientific Presentation Planning a Scientific Presentation October 8, 2002 Department of Computer Science, Graduate Seminar Facilitator: Jason Harrison As a graduate student in Computer Science you will have

More information

Why Listening Is So Important

Why Listening Is So Important Why Listening Is So Important There is a saying about listening that eloquently summarizes the nature of the process. The source of the words is unknown, but the message is universal God gave us two ears,

More information

Counting Money and Making Change Grade Two

Counting Money and Making Change Grade Two Ohio Standards Connection Number, Number Sense and Operations Benchmark D Determine the value of a collection of coins and dollar bills. Indicator 4 Represent and write the value of money using the sign

More information

Energy, Work, and Power

Energy, Work, and Power Energy, Work, and Power This worksheet and all related files are licensed under the Creative Commons Attribution License, version 1.0. To view a copy of this license, visit http://creativecommons.org/licenses/by/1.0/,

More information

How To Develop Software

How To Develop Software Software Engineering Prof. N.L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-4 Overview of Phases (Part - II) We studied the problem definition phase, with which

More information

Grade 5: Module 3A: Unit 2: Lesson 13 Developing an Opinion Based on the Textual Evidence:

Grade 5: Module 3A: Unit 2: Lesson 13 Developing an Opinion Based on the Textual Evidence: Grade 5: Module 3A: Unit 2: Lesson 13 Developing an Opinion Based on the Textual Evidence: Jackie Robinson s Role in the Civil Rights Movement This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike

More information

Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk

Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk Physical Architecture As stated earlier, architecture can be defined at both a logical

More information

WRITING EFFECTIVE REPORTS AND ESSAYS

WRITING EFFECTIVE REPORTS AND ESSAYS WRITING EFFECTIVE REPORTS AND ESSAYS A. What are Reports? Writing Effective Reports Reports are documents which both give a reader information and ask the reader to do something with that information.

More information

Five Core Principles of Successful Business Architecture

Five Core Principles of Successful Business Architecture Five Core Principles of Successful Business Architecture Authors: Greg Suddreth and Whynde Melaragno Strategic Technology Architects (STA Group, LLC) Sponsored by MEGA Presents a White Paper on: Five Core

More information

Introduction to Open Atrium s workflow

Introduction to Open Atrium s workflow Okay welcome everybody! Thanks for attending the webinar today, my name is Mike Potter and we're going to be doing a demonstration today of some really exciting new features in open atrium 2 for handling

More information

Finding Business Rules in COBOL Systems

Finding Business Rules in COBOL Systems Finding Business Rules in COBOL Systems Use Case for evolveit Scott Hesser 6/1/2013 pg. 1 blackboxit.com Understanding the 1 st step to Modernization Large commercial organizations have been developing

More information

Lecture 20: Software Evolution

Lecture 20: Software Evolution Lecture 20: Software Evolution Basics of Software Evolution Laws of software evolution Requirements Growth Software Aging Basics of Change Management Baselines, Change Requests and Configuration Management

More information

A Guide for Writing a Technical Research Paper

A Guide for Writing a Technical Research Paper A Guide for Writing a Technical Research Paper Libby Shoop Macalester College, Mathematics and Computer Science Department 1 Introduction This document provides you with some tips and some resources to

More information

Refining Informational Writing: Grade 5 Writing Unit 3

Refining Informational Writing: Grade 5 Writing Unit 3 Unit Title: Refining Informational Writing Concepts: 1. Writers read mentor texts to study informational writing. 2. Writers generate ideas and experiment with notebook entries. 3. Writers learn strategies

More information

Directions for Compare and Contrast

Directions for Compare and Contrast for Compare and Contrast To compare is the process of identifying similarities, and to contrast is the process of identifying differences. Please complete the following tasks: 1. Identify at least four

More information

ND1510 2007 LEAD TO CASH (L2C) WHITE PAPER PROPOSAL

ND1510 2007 LEAD TO CASH (L2C) WHITE PAPER PROPOSAL ND1510 2007 V1.0.0 ND1510 2007 LEAD TO CASH (L2C) WHITE PAPER PROPOSAL Version no: V1.0.0 Network Interoperability Consultative Committee Ofcom Riverside House, 2a Southwark Bridge Road, London SE1 9HA

More information

Utilizing Domain-Specific Modelling for Software Testing

Utilizing Domain-Specific Modelling for Software Testing Utilizing Domain-Specific Modelling for Software Testing Olli-Pekka Puolitaival, Teemu Kanstrén VTT Technical Research Centre of Finland Oulu, Finland {olli-pekka.puolitaival, teemu.kanstren}@vtt.fi Abstract

More information

Pattern Oriented Software Development: Moving Seamlessly from Requirements to Architecture

Pattern Oriented Software Development: Moving Seamlessly from Requirements to Architecture Pattern Oriented Software Development: Moving Seamlessly from Requirements to Architecture M S Rajasree, P Jithendra Kumar Reddy, D Janakiram Distributed & Object Systems Lab Department of Computer Science

More information

BASI. Alpine Level 2 Instructor. More About the Course BRITISH ASSOCIATION OF SNOWSPORT INSTRUCTORS

BASI. Alpine Level 2 Instructor. More About the Course BRITISH ASSOCIATION OF SNOWSPORT INSTRUCTORS BASI Alpine Level 2 Instructor More About the Course BRITISH ASSOCIATION OF SNOWSPORT INSTRUCTORS Morlich House T 01479 861 717 17 The Square F 01479 873 657 Grantown-on-Spey E basi@basi.org.uk Morayshire

More information

Writing Essays. SAS 25 W11 Karen Kostan, Margaret Swisher

Writing Essays. SAS 25 W11 Karen Kostan, Margaret Swisher Writing Essays A GOOD ESSAY CONTAINS: 1. An introductory paragraph 2. A clear thesis statement 3. A body consisting of supporting paragraphs 4. A concluding paragraph Step 1: Review Assignment Read the

More information

Formal and informal Assessment

Formal and informal Assessment Formal and informal Assessment Assessment is used in various venues: in schools from birth throughout postgraduate work, in the workplace, and from agencies granting licenses. Assessments can be either

More information

Online courses for credit recovery Promising

Online courses for credit recovery Promising Online courses for credit recovery Promising Online courses for credit recovery: Promising practices for high school teachers. Practices for High School Teachers Many students who probably would have dropped

More information

Framework for Case Analysis

Framework for Case Analysis Framework for Case Analysis Part I Analyzing a Case What is this document? You will be asked throughout your Graduate experience to analyze cases. Because there are many ways to approach cases, the CM

More information

Critical Analysis So what does that REALLY mean?

Critical Analysis So what does that REALLY mean? Critical Analysis So what does that REALLY mean? 1 The words critically analyse can cause panic in students when they first turn over their examination paper or are handed their assignment questions. Why?

More information

Medical Record Documentation and Legal Aspects Appropriate to Nursing Assistants

Medical Record Documentation and Legal Aspects Appropriate to Nursing Assistants We hope you enjoy this course. Most folks print a copy of the test and circle the answers while reading through the course. You can then log into your account (if you created one), enter your answers online,

More information

Writing Thesis Defense Papers

Writing Thesis Defense Papers Writing Thesis Defense Papers The point of these papers is for you to explain and defend a thesis of your own critically analyzing the reasoning offered in support of a claim made by one of the philosophers

More information

Understanding the Cultural Change Impacts of PLM Deployment on Organizations. Hermann Paetzold, PLM Systems Manager, Autoneum & Founder PLM Culture

Understanding the Cultural Change Impacts of PLM Deployment on Organizations. Hermann Paetzold, PLM Systems Manager, Autoneum & Founder PLM Culture Understanding the Cultural Change Impacts of PLM Deployment on Organizations Hermann Paetzold, PLM Systems Manager, Autoneum & Founder PLM Culture 1 When deploying PLM, many organizations are unaware of

More information

Educational Goals and Objectives A GUIDE TO DEVELOPING LEARNER BASED INSTRUCTION

Educational Goals and Objectives A GUIDE TO DEVELOPING LEARNER BASED INSTRUCTION Educational Goals and Objectives A GUIDE TO DEVELOPING LEARNER BASED INSTRUCTION Educational Objectives for this Presentation At the end of this presentation you will be able to: Compare and contrast educational

More information

to Become a Better Reader and Thinker

to Become a Better Reader and Thinker 1 How to Become a Better Reader and Thinker The chances are that you are not as good a reader as you should be to do well in college. If so, it s not surprising. You live in a culture where people watch

More information

A FRAMEWORK FOR ENCAPSULATING BEST BUSINESS PRACTICES FOR ELECTRICITY SUPPLY INDUSTRY INTO GENERIC PATTERNS

A FRAMEWORK FOR ENCAPSULATING BEST BUSINESS PRACTICES FOR ELECTRICITY SUPPLY INDUSTRY INTO GENERIC PATTERNS A FRAMEWORK FOR ENCAPSULATING BEST BUSINESS PRACTICES FOR ELECTRICITY SUPPLY INDUSTRY INTO GENERIC PATTERNS C. Rolland*, G. Grosz*, P. Loucopoulos**, S. Nurcan* * Centre de Recherche en Informatique Université

More information

CORPORATE INFORMATION AND TECHNOLOGY STRATEGY

CORPORATE INFORMATION AND TECHNOLOGY STRATEGY Version 1.1 CORPORATE INFORMATION AND TECHNOLOGY STRATEGY The City of Edmonton s Information and Technology Plan, 2013-2016 Bringing the Ways to Life through Information and Technology June 2013 2 Copyright

More information

Psych 605 Advanced Human Learning Professor Neil H. Schwartz, Ph.D. Fall Semester 2014

Psych 605 Advanced Human Learning Professor Neil H. Schwartz, Ph.D. Fall Semester 2014 Psych 605 Advanced Human Learning Professor Neil H. Schwartz, Ph.D. Fall Semester 2014 Class Meetings: Tuesdays & Thursdays 3:30 p.m. - 4: 45 p.m. Modoc Hall Room 222 Office Hours: Mondays 2:00 p.m. -

More information

SPIN Selling SITUATION PROBLEM IMPLICATION NEED-PAYOFF By Neil Rackham

SPIN Selling SITUATION PROBLEM IMPLICATION NEED-PAYOFF By Neil Rackham SITUATION PROBLEM IMPLICATION NEED-PAYOFF By Neil Rackham 1. Sales Behavior and Sales Success Small Sales Selling Techniques The traditional selling techniques that most of us have been trained to use

More information

MOTION DIAGRAMS. Revised 9/05-1 - LC, tlo

MOTION DIAGRAMS. Revised 9/05-1 - LC, tlo MOTION DIAGRAMS When first applying kinematics (motion) principles, there is a tendency to use the wrong kinematics quantity - to inappropriately interchange quantities such as position, velocity, and

More information

Twin A Design Pattern for Modeling Multiple Inheritance

Twin A Design Pattern for Modeling Multiple Inheritance Twin A Design Pattern for Modeling Multiple Inheritance Hanspeter Mössenböck University of Linz, Institute of Practical Computer Science, A-4040 Linz moessenboeck@ssw.uni-linz.ac.at Abstract. We introduce

More information