Teaching Architecture Metamodel-First

Similar documents
White Paper. The Art of Learning

Major Milestones, Team Activities, and Individual Deliverables

Higher education is becoming a major driver of economic competitiveness

Getting Started with Deliberate Practice

Firms and Markets Saturdays Summer I 2014

Activities, Exercises, Assignments Copyright 2009 Cem Kaner 1

ECE-492 SENIOR ADVANCED DESIGN PROJECT

DegreeWorks Training Guide

Designing a Rubric to Assess the Modelling Phase of Student Design Projects in Upper Year Engineering Courses

PREP S SPEAKER LISTENER TECHNIQUE COACHING MANUAL

The Algebra in the Arithmetic Finding analogous tasks and structures in arithmetic that can be used throughout algebra

South Carolina College- and Career-Ready Standards for Mathematics. Standards Unpacking Documents Grade 5

SCHOOL WITHOUT CLASSROOMS BERLIN ARCHITECTURE COMPETITION TO

Introduction to CRC Cards

I N T E R P R E T H O G A N D E V E L O P HOGAN BUSINESS REASONING INVENTORY. Report for: Martina Mustermann ID: HC Date: May 02, 2017

EXPO MILANO CALL Best Sustainable Development Practices for Food Security

Implementing a tool to Support KAOS-Beta Process Model Using EPF

What to Do When Conflict Happens

Visit us at:

Introduction and Motivation

Computer Science PhD Program Evaluation Proposal Based on Domain and Non-Domain Characteristics

CARITAS PROJECT GRADING RUBRIC

Different Requirements Gathering Techniques and Issues. Javaria Mushtaq

SIMPLY THE BEST! AND MINDSETS. (Growth or fixed?)

KEYNOTE SPEAKER. Introduce some Fearless Leadership into your next event. corrinnearmour.com 1

Creating Meaningful Assessments for Professional Development Education in Software Architecture

Week 01. MS&E 273: Technology Venture Formation

THE IMPORTANCE OF TEAM PROCESS

MASTER OF SCIENCE (M.S.) MAJOR IN COMPUTER SCIENCE

The Role of School Libraries in Elementary and Secondary Education

Examining the Structure of a Multidisciplinary Engineering Capstone Design Program

Training Pack. Kaizen Focused Improvement Teams (F.I.T.)

evans_pt01.qxd 7/30/2003 3:57 PM Page 1 Putting the Domain Model to Work

M55205-Mastering Microsoft Project 2016

Lecturing Module

Workload Policy Department of Art and Art History Revised 5/2/2007

Notetaking Directions

Speak Up 2012 Grades 9 12

Writing the Personal Statement

SOFTWARE EVALUATION TOOL

PUBLIC SPEAKING: Some Thoughts

Designing a Computer to Play Nim: A Mini-Capstone Project in Digital Design I

COMMUNICATING EFFECTIVELY WITH YOUR INSTRUCTOR

Author: Justyna Kowalczys Stowarzyszenie Angielski w Medycynie (PL) Feb 2015

An Interactive Intelligent Language Tutor Over The Internet

Knowledge for the Future Developments in Higher Education and Research in the Netherlands

Changing User Attitudes to Reduce Spreadsheet Risk

NATIONAL SURVEY OF STUDENT ENGAGEMENT (NSSE)

Pedagogical Content Knowledge for Teaching Primary Mathematics: A Case Study of Two Teachers

Introduction to the Practice of Statistics

Challenging Gifted Students In Mixed-Ability Classrooms

Get with the Channel Partner Program

EXECUTIVE SUMMARY. Online courses for credit recovery in high schools: Effectiveness and promising practices. April 2017

Module 12. Machine Learning. Version 2 CSE IIT, Kharagpur

SESSION 2: HELPING HAND

Modeling user preferences and norms in context-aware systems

Control Tutorials for MATLAB and Simulink

Visual CP Representation of Knowledge

PESIT SOUTH CAMPUS 10CS71-OBJECT-ORIENTED MODELING AND DESIGN. Faculty: Mrs.Sumana Sinha No. Of Hours: 52. Outcomes

IBM Software Group. Mastering Requirements Management with Use Cases Module 6: Define the System

Assessment System for M.S. in Health Professions Education (rev. 4/2011)

leading people through change

Towards a Collaboration Framework for Selection of ICT Tools

Case study Norway case 1

Urban Legends Three Week Unit 9th/10th Speech

Positive turning points for girls in mathematics classrooms: Do they stand the test of time?

Genevieve L. Hartman, Ph.D.

AGENDA LEARNING THEORIES LEARNING THEORIES. Advanced Learning Theories 2/22/2016

A process by any other name

Study Group Handbook

E C C. American Heart Association. Basic Life Support Instructor Course. Updated Written Exams. February 2016

BSP !!! Trainer s Manual. Sheldon Loman, Ph.D. Portland State University. M. Kathleen Strickland-Cohen, Ph.D. University of Oregon

From practice to practice: What novice teachers and teacher educators can learn from one another Abstract

PROCESS USE CASES: USE CASES IDENTIFICATION

Math Pathways Task Force Recommendations February Background

Process improvement, The Agile Way! By Ben Linders Published in Methods and Tools, winter

Tutoring First-Year Writing Students at UNM

Beyond Classroom Solutions: New Design Perspectives for Online Learning Excellence

Assessment. the international training and education center on hiv. Continued on page 4

RESPONSE TO LITERATURE

EVERYTHING DiSC WORKPLACE LEADER S GUIDE

Custom Program Title. Leader s Guide. Understanding Other Styles. Discovering Your DiSC Style. Building More Effective Relationships

Software Maintenance

CREATING SHARABLE LEARNING OBJECTS FROM EXISTING DIGITAL COURSE CONTENT

Title: Improving information retrieval with dialogue mapping and concept mapping

Personal Tutoring at Staffordshire University

ANGLAIS LANGUE SECONDE

The NH Parent Partner Program

STUDENT PERCEPTION SURVEYS ACTIONABLE STUDENT FEEDBACK PROMOTING EXCELLENCE IN TEACHING AND LEARNING

Grade 5: Module 2A: Unit 1: Lesson 6 Analyzing an Interview with a Rainforest Scientist Part 1

How to make successful presentations in English Part 2

From Access to Inclusion: Approaches to Building Institutional Capacities for Inclusive Pedagogy

Developing an Assessment Plan to Learn About Student Learning

Function Tables With The Magic Function Machine

Fearless Change -- Patterns for Introducing New Ideas

File # for photo

Teaching a Laboratory Section

Infrastructure Issues Related to Theory of Computing Research. Faith Fich, University of Toronto

Mathematics Success Grade 7

Software Security: Integrating Secure Software Engineering in Graduate Computer Science Curriculum

Transcription:

Teaching Architecture Metamodel-First George Fairbanks SATURN 2014 7 May 2014 Rhino Research Software Architecture Consulting and Training http://rhinoresearch.com

Introduction About me I ve been teaching OOAD, design, and architecture since the late 90 s My OOAD experience Looking for ideal sequence of topics Linearizing a web is hard Became pretty good at teaching OOAD Many courses, teachers Programming in the small (PITS) Teaching architecture is different, harder Few courses, teachers PITL I wrote a book on architecture Still find teaching architecture very difficult This talk This talk describes an approach that s new to me

What s in this for you? For teachers Teach-the-teacher Generalize its pedagogical strategies Enough detail here to recreate my course For newcomers to architecture The actual lessons + book references Commiseration and a peek behind the curtain Yeah, we re struggling to teach this topic

Talk summary Obstacles Low motivation Abstract ideas Big investment before big payoff Wrong details PITS vs PITL Pedagogical strategies Fail fast Make tangible Teach small, common task Teach metamodel-first Heavy on exercises Learning points Q1M2: Question first, model second Specific/general tradeoff Choose one: Module, runtime, xor allocation No: One diagram to rule them all Avoid: "Block diagram" Include a full legend Eliminate unneeded details No: Non-semantic cruft No: Naming on technology No: Arrowheads (mostly)

Teaching Architecture is Hard

Obstacle: Low motivation Obstacle: Low motivation Developers are not highly motivated to learn architecture Cup already full: Developers think they know it already Many other short-term payoff options (e.g. learn new language) Twitter generation: Can t learn calculus by hanging out with math folks

Strategy: Fail fast Obstacle: Low motivation Developers are not highly motivated to learn architecture Cup already full: Developers think they know it already Many other short-term payoff options (e.g. learn new language) Twitter generation: Can t learn calculus by hanging out with math folks Strategy: Fail fast Headline writing story Failure 1: Show that their diagrams stink. Failure 2: Focus on problem, not diagram, even in course.

Obstacle: Abstract ideas Obstacle: Abstract ideas Architecture concepts are largely intangible, abstract Some seek abstractions, some seek concrete expression

Strategy: Make the abstract tangible Obstacle: Abstract ideas Architecture concepts are largely intangible, abstract Some seek abstractions, some seek concrete expression Strategy: Make the abstract tangible Course scope Teach diagramming, not analysis. Course sequence Heavy on exercises Concrete/Abstract/Concrete progression

Obstacle: Big investment before big payoff Obstacle: Big investment before big payoff Architecture ideas form a complex web Must internalize the ideas before applying them Generally takes years to master

Strategy: Teach a small, common task Obstacle: Big investment before big payoff Architecture ideas form a complex web Must internalize the ideas before applying them Generally takes years to master Strategy: Teach a small, common task Diagrams topic is tiny compared to architecture Alternative: Teach from failure examples, e.g. comp.risks

Obstacle: Wrong details Obstacle: Wrong details Novices mix abstraction levels Novices omit critical details Example of drawing dog

Obstacle: Wrong details Obstacle: Wrong details Novices mix abstraction levels Novices omit critical details Example of drawing dog

Obstacle: Wrong details Obstacle: Wrong details Novices mix abstraction levels Novices omit critical details Example of drawing dog

Obstacle: Wrong details Obstacle: Wrong details Novices mix abstraction levels Novices omit critical details Example of drawing dog

Strategy: Teach metamodel-first Obstacle: Wrong details Novices mix abstraction levels Novices omit critical details Example of drawing dog Strategy: Teach metamodel-first Just enough theory to succeed at concrete task Tantalizing glimpse of full cognitive model Legend Legend Done in Q1 Module Target for Q2 Dependency

Obstacle: PITS vs. PITL Obstacle: PITS vs. PITL PITS, PITL = Programming in the Small, Large PITS: Small examples fit into course neatly PITL: Architecture examples, not so neatly

Strategy: Lots of exercise time Obstacle: PITS vs. PITL PITS, PITL = Programming in the Small, Large PITS: Small examples fit into course neatly PITL: Architecture examples, not so neatly Strategy: Lots of exercise time Spend 60%+ of time on exercises General pedagogy: I do, we do, you do Group exercise; I do exercise with class; they repeat

Summary of obstacles and strategies Low motivation Fail fast Abstract ideas Make tangible Big investment before payoff Teach small, common task Wrong details Teach metamodel (ie legend) first PITS vs PITL Lots of exercise time

Course Outline

Overall course outline Better Software Diagrams Course Part 1: Student exercise (fail fast) [30 mins] Hello, agenda, goals Work in groups of 2-3 Explain your neighbor s diagram; I pre-fetch lecture topics Part 2: Lecture (boring, abstract stuff) [30 mins] Goal: 5% think like the coach instead of the rookie List of topics, low conceptual model sophistication As a group, fix an example diagram using topics Part 3: Student exercise (apply abstract stuff) [30 mins] Decide on Q1M2 Fix original example Reflect on lessons, discuss

Part 1 Exercise: Build a diagram Design a Library System Output The system enables libraries to check books in/out using barcode scanner. 1+ diagrams, readable by other engineers, that explain how your design overcomes the challenges Challenges Notes Must tolerate ~1 hour network outages Transactions complete within 250ms Finish in 15 mins Focus on clear expression, even if the design is imperfect.

Part 1 Exercise: Build a diagram Design a Library System Rarely draw more Output The system enables libraries to than 1 diagram, check books in/out using despite boldbarcode text scanner. 1+ diagrams, readable by other engineers, that explain how your design overcomes the challenges Challenges Notes Must tolerate ~1 hour network outages Transactions complete within 250ms Finish in 15 mins Focus on clear expression, even if the design is imperfect. Invariably draw a general diagram, hard to see how it addresses the challenges I say this again 5 mins before end; encourage them to redraw diagram for clear expression.

Sequencing lecture topics Q: What s the difference between the coach and the rookie? (1) Q1M2: Why does this diagram exist? Q1M2 (more) (1) Choose: Module, runtime, xor allocation (1) Notation semantics (1) Eliminate unnecessary details (1) 1DTRTA (1) Diagram prototypes (2) Choose details to include (1) Use a legend (2) Legends reveal metamodel (1) SLAP A: Conceptual model of architecture (2) Use metamodel consistently But, can t overload the students So, teach conceptual model gradually: 1. Basic diagrams course 2. Advanced diagrams course 3. General architecture modeling course 1,2,3 in table corresponds to course number Importance --> (2) Modeling --> Engineering (1) Block Diagram (3) Simplify diagram with refinement (2) Diagrams are Models (1) Specific/general tradeoff (1) Simple notation (20 Open-Closed Semantics (3) Simplify diagram with views (1) Eye Chart, < 15 items (1) Name for intent, not tech (1) No arrowheads (1) Eye Candy Conceptual Model Sophistication -->

Lecture topics (first course) Choosing what diagrams to build Question first & model second (Q1M2) [JESA: Chap 6.6] Specific/general tradeoff [JESA: Chap 15.2.1] What kinds of diagrams exist? Choose one: Module, runtime, xor allocation [JESA: Chap 9.6] Prototypical diagram examples [JESA: Chap 4.1] Avoid: One diagram to rule them all [JESA: Chap 15.2] Avoid: "Block (i.e., generic) diagram" What's included and excluded? Include a full legend [JESA: Chap 15.4] Eliminate unneeded details (Q1M2) [JESA: Chap 6.6] Avoid: Non-semantic cruft [JESA: Chap 15.4] Avoid: Naming based on technology [JESA: Chap 15.1.6] Avoid: Arrowheads (mostly) [JESA: Chap 15.4]

Reflection

Reflection Overall Effective in short period of time Positive feedback Interest in more Mission creep: Really need to add time dimension to the 3 types of diagrams Add slides to pre-empt problem in last class Students quickly backslide Mentoring and follow-up essential But they use legends Poor summary: Use a legend Compare to golden rule Added this as last slide in course

Talk summary Obstacles Low motivation Abstract ideas Big investment before big payoff Wrong details PITS vs PITL Pedagogical strategies Fail fast Make tangible Teach small, common task Teach metamodel-first Heavy on exercises Learning points Q1M2: Question first, model second Specific/general tradeoff Choose one: Module, runtime, xor allocation No: One diagram to rule them all Avoid: "Block diagram" Include a full legend Eliminate unneeded details No: Non-semantic cruft No: Naming on technology No: Arrowheads (mostly)

About me (George Fairbanks) PhD Software Engineering, Carnegie Mellon University E-book on Google play store Hardback on Amazon, etc. Program chair: SATURN 2012; Former program committee member: WICSA, ECSA, ICSM, CompArch Thesis on frameworks and static analysis (Garlan & Scherlis advisors) Architecture and design work at big financial companies, Nortel, Time Warner, others Teacher of software architecture, design, OO analysis / design