Four Primary Design Principles Separation of concerns Deal with separate aspects of a problem separate 2. Abstraction Identify important aspects of a phenomenon and ignore details that are irrelevant at this stage Hierarchical abstraction build hierarchical layers of abstraction Procedural (functional)abstraction · Data abstraction Control abstraction(abstract from precise sequence of events handled, e.g., nondeterminacy)Copyright Nancy Leveson, Sept. 1999 Four Primary Design Principles 1. Separation of concerns c Deal with separate aspects of a problem separate. 2. Abstraction Identify important aspects of a phenomenon and ignore details that are irrelevant at this stage. Hierarchical abstraction: build hierarchical layers of abstraction Procedural (functional) abstraction Data abstraction Control abstraction (abstract from precise sequence of events handled, e.g., nondeterminacy) �