cnotes5 - Copyright c Nancy Leveson, Sept. 1999 1980s: OO...

Info iconThis preview shows pages 1–6. Sign up to view the full content.

View Full Document Right Arrow Icon
Copyright c Nancy Leveson, Sept. 1999 1980s: OO design: added inheritance, multiple inheritance, and polymorphism to ADT. In process added complexity and increased some types of connectivity. Lots of claimed advantages -- so far empirical evaluation is not supporting them well. 1990s: Architecture Patterns Frameworks Kits etc.
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Copyright c Nancy Leveson, Sept. 1999 Software Design Principles Design is a creative, problem-solving activity. No recipe for doing it - always need some type of "magic". Quality and expertise of designers is determinant for success. Simon: An expert has over 50,000 chunks of domain knowledge at hand. Solving a problem involves mapping into knowledge available. The larger this knowledge and the more accessible, the more successful the process will be.
Background image of page 2
Copyright c Nancy Leveson, Sept. 1999 Software Design Principles (2) Brooks, Curtis: Successful software development often depends on small number of exceptional designers who "think on a system level." Curtis: Such people might not be particularly good programmers. Design problem: How to decompose system into parts each with a lower complexity than system as a whole while minimizing interaction between the parts such that the parts together solve the problem. No universal way of doing this.
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Copyright c Nancy Leveson, Sept. 1999 Four Primary Design Principles 1. 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)
Background image of page 4
c Nancy Leveson, Sept. 1999 Four Primary Design Principles (2) 3. Simplicity Emphasis on software that is clear, simple, and therefore easy to check, understand, and modify. 4.
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 6
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 15

cnotes5 - Copyright c Nancy Leveson, Sept. 1999 1980s: OO...

This preview shows document pages 1 - 6. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online