Software Design (Finals) Flashcards
a mechanism to transform user requirements into some suitable
form, which helps the programmer in software coding and implementation.
Software design
It deals
with representing the client’s requirement, as described in SRS
Software design
Objectives of Software Design
Correctness
Completeness
Efficiency
Flexibility
Consistency
Maintainability
are concerned with providing means to handle the complexity of the design process effectively.
Software design principles
the goal is to divide the problem into manageable pieces.
Problem Partitioning
Two Types of Abstraction
Functional Abstraction
Data Abstraction
The Software Design Principles
Problem Partitioning
Abstraction
Modularity
Top-down and Bottom-up Approach
achieved by developing
functions that perform only one kind of task and do not excessively interact with other modules.
Functional Independence
a tool that enables a designer to consider a component at an
abstract level without bothering about the internal details of the implementation.
Abstraction
The details of the algorithm to accomplish the functions are not visible to the
user of the function.
* Functional abstraction forms the basis for Function oriented design approaches.
Functional Abstraction
specifies to the division of software into separate modules which are
differently named and addressed and are integrated later on in to obtain the
completely functional software.
Modularity
Details of the data elements are not visible to the users of data. It forms the basis for Object Oriented design approaches.
Data Abstraction
only property that allows a program to be intellectually manageable.
Modularity
It measures the relative function strength of a module.
Cohesion
It measures the relative interdependence among modules.
Coupling
suggests that modules
can be characterized by the design decisions that protect from the others, i.e., In other words, modules should be specified that data include within a module is inaccessible to other modules that do not need for such information.
Information hiding
2 Strategy of Design
Top-down Approach
Bottom-up Approach
explains a system’s core ideas and characteristics with respect to its relationships, environment, and other design principles.
Software architecture
Additional Software Design Principles
- DRY (Don’t Repeat Yourself)
- Encapsulation Principle
- Principle of Least Astonishment (PoLA)
- You Aren’t Gonna Need It (YAGNI)
- Keep It Simple, Stupid (KISS)