1. Abstraction:-Abstraction is the act of representing essential features without including the background
details or explanations. the abstraction is used to reduce complexity and allow efficient design
and implementation of complex software systems. Many levels of abstraction can be posed.
At
the highest level of abstraction, a solution is stated in broad terms using the language of the
problem environment. At lower levels of abstraction, a more detailed description of the solution
is provided.
As different levels of abstraction are developed, you work to create both procedural and
data abstractions.
A procedural abstraction refers to a sequence of instructions that have a specific and
limited function. The name of a procedural abstraction implies these functions, but specific
details are suppressed.
A data abstraction is a named collection of data that describes a data object.
2. ARCHITECTURE- Architecture serves as a blueprint for a system.
Structure organization of program components (modules) and their
interconnection
The architectural design can be represented using one or more of a number of different models.
Structural models: Represent architecture as an organized collection of program components.
Framework models: Increase the level of design abstraction by attempting to identify repeatable
architectural design frameworks that are encountered in similar types of applications. It represents the design in more abstract way
Dynamic models : Address the behavioral aspects of the program architecture, indicating how
the structure or system configuration may change as a function of external events.
Process models :Focus on the design of the business or technical process that the system must
accommodate.
Functional models can be used to represent the functional hierarchy of a system.
3. Pattern- a repeated form
The pattern simply means a repeated form or design in which the same shape is repeated several times to form a pattern. The pattern in the design process means the repetition of a solution to a common recurring problem within a certain context.
4. REFINEMENT
Process of elaboration from high level abstraction to the lowest level
abstraction. High level abstraction begins with a statement of functions. Refinement causes
the designer to elaborate providing more and more details at successive level of abstractions
Abstraction and refinement are complementary concepts.
5. Refactoring -- Organization technique that simplifies the design of a component without
changing its function or behavior. a reorganization technique that simplifies the design. Examines for redundancy, unused design elements and
inefficient or unnecessary algorithms.
6. Modularity
- A software is separately divided into name and addressable components. Sometime they are called as modules which integrate to satisfy the problem requirements.
- Modularity is the single attribute of a software that permits a program to be managed easily.
7. Information hiding
Modules must be specified and designed so that the information like algorithm and data presented in a module is not accessible for other modules not requiring that information.
8. Functional independence
A module having high cohesion and low coupling is said to be functionally
independent of other modules. By the term functional independence, we mean
that a cohesive module performs a single task or function. A functionally
independent module has minimal interaction with other modules.