Examples
From Science of Design
Contents |
Elements of a science of design in CS
Computer science already has some good examples of areas with budding or florishing scientific bases. This is an initial list; it needs some narrative and more citations.
Algorithms and data structures
Computer structures
C. Gordon Bell and Allen Newell: Computer Structures: Readings and Examples. McGraw-Hill 1971. ISBN 0-07004-3574. (Out of print but available online here).
- Develops a multi-level model to describe computer structures from combinatorial circuits up to system architectures. The levels are Processor-Memory-Switch (system architecture), Instruction Set Processor, Register Transfer Level, Sequential Circuit, and Combinatorial Circuit. Each level addresses a specific set of issues and has its own notations and analysis techniques, along with ways to map to the levels above and below.
Pattern languages
This work draws on Alexander's architectural theory of pattern languages for an expository form that helps to organize theories of software design and present them in a systematic way.
Eric Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley 1995. Order it from Amazon.com
- Systematic presentation of software design elements, principally at the level of data structures. Emphasizes "patterns" of structure that occur repeatedly. The power resides in the pattern style of exposition as well as the systematic definition of a family of related definitions.
Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, and Michael Stal. Pattern-Oriented Software Architecture, volume 1: A System of Patterns. Wiley, 1996. Order it from Amazon.com
- Applies the pattern approach to software architectures.
Data bases
Normalization rules for relational databases to increase consistency and minimize changes
Concurrency
Concurrency control procedures (alorithms, logic, optimization)
Software Architecture
Mary Shaw and David Garlan. Software Architecture: Perspectives for an Emerging Discipline. Prentice Hall, 1996. Order it from ISBN 31829572/royrweil1-20" rel="nofollow">Amazon.com
- Organizes and explains the useful structures that software desginers use for organizing systems. Establishes a systematic vocabulary of architectural styles to guide designers.
Problem frames
Michael Jackson. Problem Frames. Addison-Wesley, 2001. Order it from Amazon.com
- Problem frames provide a tool for classifying, analyzing, and structuring real-world software development problems by recognizing the intrinsic structure of the problem. Jackson has updated his original collection of essays on problem frames to make a more structured narrative.
Economic value
Carliss Y. Baldwin and Kim B Clarke. Design Rules I: The Power of Modularity. MIT Press, 2000. Order it from Amazon.com
- In this book, Carliss Baldwin and Kim Clark develops a theory of design and of its influence on the large-scale structure of industry, based on the notion that information hiding modularity creates economically valuable "real options" that companies organize to exploit.
Karl Shapiro and Hal R. Varian. Information Rules: A strategic guide to the network economy. Harvard Business School Press, 1998. Amazon.com
- Despite claims that the new technology of the network creates a need for a new kind of economics, the authors (who are real economists) argue that long-established economic principles still apply -- but the network economy is in a different part of the space covered by those laws. Based on established economics, they explain how to think about information goods, manage intellectual property, and navigate pricing and selling issues including such phenomena as lock-in, switching costs, compatibility, and standardization. Written for executives, easy to read, insightful.
Design in Computer Science
Herbert Simon: The Sciences of the Artificial MIT Press, 1996 (3rd edition). Order it from Amazon.com
- Much of the discussion of a science of design is inspired by Simon's Sciences of the Artificial, which laid out a basis. Simon explores design as a science; in particular he refutes the proposition that software does not admit of the same sorts of science as the natural world.
Design for Software
Brooks' lessons from IBM
Fred Brooks. Mythical Man-Month. Addison-Wesley, 1995. Order it from Amazon.com
- Brooks has updated his classic essays on software engineering based on more recent experience. The result, although somewhat dated in its examples (especially the development methods), remains one of the best introductions to the human and organizational aspects of the field. The book also provides a baseline on what software development was like before there were software development methods.
Parnas' work on software design
Daniel M. Hoffman and David M. Weiss, (Eds.). Software Fundamentals: Collected Papers by David L. Parnas. Addison-Wesley, 2001. Order it from Amazon.com
- Collects 33 of Parnas's most influential papers on software documentation, design, concurrency and scheduling, and non- technical issues. Leading thinkers in software engineering contribute short introductions to set each paper's conception and writing in historical context. Topics include relational and tabular documentation, information hiding as the basis for modular program construction, abstract interfaces that provide services without revealing implementation, and program families for the efficient development of multiple software versions. Book News, Inc.®, Portland , OR
Connecting design guidance to software
Terry Winograd (ed). Bringing Design to Software. Addison-Wesley, 1996. Order it from Amazon.com
- "Design" here means design of the software-centered product as seen and used by its ultimate clients. This collection of case studies, guidelines, and reflections presents a view of software design that includes consideration of how the software suits the user -- issues that are too often neglected.
Principles
We recognize some principles for design that apply across domains
- Separation of concerns as a mechanism to reduce complexity and manage change
- Abstraction as a way to express models, separate levels of detail, and establish relations among the levels
BMW's iDrive: Case study materials
BMW's iDrive is a new and controversial systems which provides an integrated control unit for entertainment, climate, navigation, and other non-critical functions. It was introduced in the top-end 7 series in 2002, and has now, with some modifications, begun to spread across other series as well. It represents BMW's attempt to provide an interface to the increasingly complex systems and extended capabilities of today's automobiles.
Day, John. [1] Can BMW's iDrive Pass Its Road Test Now? Electronic Design, June 21, 2004. Good explanation of iDrive, it's design, the underlying technology, business goals, and improvements made since introduction.
David, Mark. [2] iDrive Is Not For Everybody, But Then, It Doesn't Have To Be. Electronic Design, June 21, 2004. Argues that for technophiles, the iDrive is a win.
Reinventing the automotive UI or just another gimmick - the BMW 7 Series.[3] Kuro5hin. April 15, 2002. Review of iDrive and other features of BMW 7 Series.
Hassel, Liza & Hagen, Eli.[4] Adaptation of an automotive dialogue system to users’ expertise and evaluation of the system. Language Research and Evaluation, 40, 67-85, 2006. Interesting paper, adds adaptive voice interaction feature to iDrive, evaluates the benefits.
Main Page - Analysis - Community- Bibliography - See User's Guide for usage help.
