1/24
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
What is software design?
It is the process of conceptualizing software requirements into implementation by finding the optimum solution.
What does software design take as challenges?
User requirements.
What is the main goal of software design?
To create the best possible design for implementing the intended solution.
What is structured design?
A conceptualization of the problem into well-organized solution elements.
What strategy does structured design use?
Divide and conquer (breaking a problem into smaller sub-problems).
What are modules in structured design?
Small pieces of the problem organized hierarchically that communicate with each other.
What are the two key rules for communication in structured design?
Cohesion (grouping related elements) and Coupling (communication between modules).
What characterizes a good structured design?
High cohesion and low coupling.
What is function-oriented design?
A design where the system is divided into sub-systems called functions.
What methodology does function-oriented design inherit?
Divide and conquer.
How do functions communicate in function-oriented design?
By passing information and using global data.
What problem can arise with function calls?
Functions may change the state of the program, which can be undesirable.
What tool is used to model function-oriented design?
Data Flow Diagram (DFD).
What does object-oriented design focus on?
Entities (objects) and their characteristics instead of functions.
What is an object in OOD?
An entity with attributes (data) and methods (functions) such as a person, bank, or customer.
What is a class in OOD?
A generalized description of an object; objects are instances of classes.
What is encapsulation?
Bundling attributes and methods together, with information hiding from the outside world.
What is inheritance?
The ability of sub-classes to reuse attributes and methods from super-classes.
What is polymorphism?
The ability for methods with the same name but different arguments to perform similar tasks.
What are the two main approaches to software design?
Top-down design and Bottom-up design.
What is top-down design?
Starting with the whole system and decomposing it into sub-systems until the lowest level is reached.
When is top-down design most suitable?
When designing a system from scratch and details are unknown.
What is bottom-up design?
Starting with basic components and combining them into higher-level systems.
When is bottom-up design most suitable?
When creating a system from existing systems or components.
Which design approach is most practical?
A combination of both top-down and bottom-up.