Software. Is

Similar documents
Software. Is

Old Is the New

Procedural Programming. It's Back? It Never Went

Turning Development Outside

The Architecture of

Lowering the Level of

Design and Information Hiding

Working with Transformations on the Coordinate Plane

There we are; that's got the 3D screen and mouse sorted out.

Specification: The Biggest Bottleneck in Formal Methods and Autonomy 1

HARRIS MATCHETTE SOLUTIONS. The New EZSpirits POS

Websites of different companies

Introduction to 3D Concepts

How to Create a Killer Resources Page (That's Crazy Profitable)

Technical Arts 101 Prof. Anupam Saxena Department of Mechanical engineering Indian Institute of Technology, Kanpur. Lecture - 7 Think and Analyze

Refactoring to

What s New in BID2WIN Service Pack 4

Creating an Animated Navigation Bar in InDesign*

MITOCW ocw f99-lec07_300k

2016 All Rights Reserved

Strategy Pattern. What is it?

The Java Memory Model

XML technology is very powerful, but also very limited. The more you are aware of the power, the keener your interest in reducing the limitations.

Creating joints for the NovodeX MAX exporter

Red Hat Linux Network Management Tools (CD- ROM included)

Designing for Performance. Martin Thompson

Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page:

Kindle Paperwhite Manual Plugged In But Not

EC121 Mathematical Techniques A Revision Notes

Porsche 91 1GT D m o d e ling tutorial - by Nim

Brief 3ds max Shaping Tutorial

STA Rev. F Learning Objectives. Learning Objectives (Cont.) Module 3 Descriptive Measures

The Value of Values. Rich Hickey Datomic, Clojure

The Birth of Craftsmanship

Learn a lot beyond the conventional VLOOKUP

Physically-Based Laser Simulation

lld: A Fast, Simple and Portable Linker Rui Ueyama LLVM Developers' Meeting 2017

A short introduction to. designing user-friendly interfaces

Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5

LING 473: Day 8. START THE RECORDING Computational Complexity Text Processing

Foundations of Math II

Software Engineering Lab Manual

EBOOK THE BEGINNER S GUIDE TO DESIGN VERIFICATION AND DESIGN VALIDATION FOR MEDICAL DEVICES

Anatomy of a Standard Transcript

Citation for published version (APA): Bhanderi, D. (2001). ACS Rømer Algorithms Verification and Validation. RØMER.

John Stark. Click here if your download doesn"t start automatically

Guide - The limitations in screen layout using the Item Placement Tool

DESIGN AS RISK MINIMIZATION

What s New in. Word Presented by Janet Porter

Administrivia. Added 20 more so far. Software Process. Only one TA so far. CS169 Lecture 2. Start thinking about project proposal

proj 5 A/B kerning & introduction to the grid

Cardinality of Sets MAT231. Fall Transition to Higher Mathematics. MAT231 (Transition to Higher Math) Cardinality of Sets Fall / 15

Reply to L2/10-327: Comments on L2/10-280, Proposal to Add Variation Sequences... 1

Mobile Mapping and Navigation. Brad Kohlmeyer NAVTEQ Research

Theory and Algorithms Introduction: insertion sort, merge sort

The Process of Software Architecting

Naming Things in Adafruit IO

A Sophomoric Introduction to Shared-Memory Parallelism and Concurrency Lecture 2 Analysis of Fork-Join Parallel Programs

Search Engine Optimization and Placement:

WIntroduction. Motion Control Architectures. Chuck Lewin, Founder of Performance Motion Devices

Unit 1: Preliminaries Part 1: Course Introduction, Abstraction, and ADT s

In our first lecture on sets and set theory, we introduced a bunch of new symbols and terminology.

Apple ipod Mini Take Apart Repair Manual

EECS 543 Final Exam Example

CS 31: Intro to Systems Caching. Kevin Webb Swarthmore College March 24, 2015

STA Module 2B Organizing Data and Comparing Distributions (Part II)

STA Learning Objectives. Learning Objectives (cont.) Module 2B Organizing Data and Comparing Distributions (Part II)

OMG Workshop MDA. Tool Chains for MDA? Let's consider leaving our tool chains behind us.

Azon Master Class. By Ryan Stevenson Guidebook #5 WordPress Usage

What is a Programming Paradigm

Online Marketng Checklist

Magnetize Your. Website. A step-by-step action guide to attracting your perfect clients. Crystal Pina. StreamlineYourMarketing.com

Installing and Using Trackside Cameras Revised November 2008

Download Free Pictures & Wallpaper from the Internet

Database Management System Prof. D. Janakiram Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No.

On the Web sun.com/aboutsun/comm_invest STAROFFICE 8 DRAW

mid=81#15143

PROJECT THREE - EMPHASIS

Art-based Rendering with Graftals

Diagram Based UIs in Oracle ADF

Strategic Briefing Paper Big Data

Figure 4.1: The evolution of a rooted tree.

CSE 421/521 Final Exam

The Software Design Process. CSCE 315 Programming Studio, Fall 2017 Tanzir Ahmed

Introduction to the Semantic Web and Semantic Web Services

High-Performance Computing

Tactile and Advanced Computer Graphics Module 7. Introduction to Illustrator

Introduction to Programming

ENGR Socolofsky

Saturday, October 26th, 11am. JALT2013, Kobe Convention Center, Portopia Kobe, October 25th - 28th.

CS 31: Intro to Systems Caching. Martin Gagne Swarthmore College March 23, 2017

Snow Shader R&D in UDK I3 DLC

SolarWinds Technical Reference

y= sin( x) y= cos( x)

INTERTWinE workshop. Decoupling data computation from processing to support high performance data analytics. Nick Brown, EPCC

CSCE 156 Computer Science II

The 21 WORD . That Can Get You More Clients. Ian Brodie

An Introduction to Business Disaster Recovery

Handling Your Data in SPSS. Columns, and Labels, and Values... Oh My! The Structure of SPSS. You should think about SPSS as having three major parts.

Animator Friendly Rigging Part 1

Transcription:

Software Is Details @KevlinHenney

Any program is a model of a model within a theory of a model of an abstraction of some portion of the world or of some universe of discourse. Meir M Lehman "Programs, Life Cycles, and Laws of Software Evolution"

The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise. Edsger W Dijkstra

It's just semantics.

It's just meaning.

It's just details.

Details count. Peter Weinberger

Geeks are people who love something so much that all the details matter. Marissa Mayer

We're talking about a very specific mindset that is crucial when it comes to the act of creating. Will Gompertz Think Like an Artist

It is an attitude that can be encapsulated in a simple but demanding rule: always think both big picture and fine detail. Will Gompertz Think Like an Artist

software

software architecture

code

implementation

implementation details

design details

design decisions

Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change. Grady Booch

Architecture is a hypothesis, that needs to be proven by implementation and measurement. Tom Gilb

We propose [...] that one begins with a list of difficult design decisions or design decisions which are likely to change. Each module is then designed to hide such a decision from the others. David L Parnas On the Criteria to Be Used in Decomposing Systems into Modules

Programming is a design activity. Jack W Reeves What Is Software Design?

Coding actually makes sense more often than believed. Often the process of rendering the design in code will reveal oversights and the need for additional design effort. The earlier this occurs, the better the design will be. Jack W Reeves What Is Software Design?

If a plot works out exactly as you first planned, you're not working loosely enough to give room to your imagination and instincts.

/ WordFriday

pantser, noun Writer who writes by the seat of their pants. In contrast to a plotter, a pantser doesn't work to (or have) an outline.

16-bit

32-bit

64-bit

<windows.h>

LLP64

LP64

Hamlet: To be, or not to be, that is the question.

Ophelia: 'Tis in my memory locked, and you yourself shall keep the key of it.

Hamlet: Yea, from the table of my memory I'll wipe away all trivial fond records.

Unshared mutable data needs no synchronisation Unshared Mutable Shared mutable data needs synchronisation Shared Unshared immutable data needs no synchronisation Immutable Shared immutable data needs no synchronisation

Mutable The Synchronisation Quadrant Unshared mutable data needs no synchronisation Unshared Shared mutable data needs synchronisation Shared Unshared immutable data needs no synchronisation Immutable Shared immutable data needs no synchronisation

All computers wait at the same speed

Savings in time feel like simplicity

... premature optimization is the root of all evil (or at least most of it) in programming. Donald Knuth

... premature optimization is the root of all evil (or at least most of it) in programming. Donald Knuth

... premature optimization is the root of all evil (or at least most of it) in programming. Donald Knuth

Command-line tools can be 235x faster than your Hadoop cluster Adam Drake http://aadrake.com/command-line-tools-can-be-235x-faster-than-your-hadoop-cluster.html

sort

O(n log n)

O(n 2 )

O(n!)

OMG!

O(n)

Simple Testing Can Prevent Most Critical Failures An Analysis of Production Failures in Distributed Data-Intensive Systems https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-yuan.pdf

Schiaparelli s Inertial Measurement Unit (IMU) went about its business of calculating the lander s rotation rate. For some reason, the IMU calculated a saturationmaximum period that persisted for one second longer than what would normally be expected at this stage. When the IMU sent this bogus information to the craft s navigation system, it calculated a negative altitude. http://gizmodo.com/a-crazy-miscalculation-doomed-the-sciaparelli-lander-1789319670

That fateful miscalculation set off a cascade of despair, triggering the premature release of the parachute and the backshell, a brief firing of the braking thrusters, and activation of the on-ground systems as if Schiaparelli had already reached the surface. This all happened while the vehicle was still two miles (3.7 km) above ground. http://gizmodo.com/a-crazy-miscalculation-doomed-the-sciaparelli-lander-1789319670

A majority of the production failures (77%) can be reproduced by a unit test. https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-yuan.pdf

http://www.commitstrip.com/en/2016/08/25/a-very-comprehensive-and-precise-spec/

http://www.commitstrip.com/en/2016/08/25/a-very-comprehensive-and-precise-spec/

http://www.commitstrip.com/en/2016/08/25/a-very-comprehensive-and-precise-spec/

http://www.commitstrip.com/en/2016/08/25/a-very-comprehensive-and-precise-spec/

Normally screws are so cheap and small and simple you think of them as unimportant. But now, as your Quality awareness becomes stronger, you realize that this one, individual, particular screw is neither cheap nor small nor unimportant. Robert M Pirsig Zen and the Art of Motorcycle Maintenance

Right now this screw is worth exactly the selling price of the whole motorcycle, because the motorcycle is actually valueless until you get the screw out. With this reevaluation of the screw comes a willingness to expand your knowledge of it. Robert M Pirsig Zen and the Art of Motorcycle Maintenance

Software Is Details