Chapter 8 Design Concepts
What is functional Independence?
A Criterion for building effective modules
What is software design?
A combination of principles Concepts and practices that lead to developing high-quality software
What is separation of concerns?
A concern is a feature or behavior specified in req. model. Dividing these into smaller more manageable pieces makes a problem take less effort and time to solve.
What is information hiding?
A mechanism for reducing the propagation of side effects when errors do occur
What is pattern-based engineering
A technique for designing software with proven capabilities
What is architecture?
A way better understanding the overall structure of a system
Design Concepts
Attaining an understanding that precedes anything practical
What are aspects?
Cross-cutting system requirements
What is object-oriented design concepts?
Exactly what it sounds like. Inheritance, polymorphism, objects. Etc.
What is refinement?
Helps you to reveal low-level details as design progresses
What is the design model
It's related to the requirements model but with a lower level of abstraction, includes more implementation specific details.
Design principles
Principles that establish an overriding philosophy that guides you can the design work you must perform
What is modularity?
Related to the separation of concerns, good makes suffer understandable by breaking it into it modules
What is refactoring?
Simplifies the design/code without changing the function It is used for optimizing the design that is derived
What is abstraction?
Specifies procedure and data internally but hides low-level detail from "Outsiders". Dealing with ideas of data and procedure rather than instances. A mechanism for creating reusable software components
Design practice
practical steps which themselves lead to the creation of various representations that serve as a guide for the construction activity that follows