CSCI334 - Software Design Flashcards
What is software design?
The activity of specifying the nature and composition of software products that satisfy client needs and desire subject to constraints.
What is the importance of software design?
Design is economically important and affects our quality of life; a good product design can directly affect life for better or worse.
What is an abstraction in software design?
Suppressing or ignoring some properties of objects, events, or situations in favor of others. It’s an important problem-solving technique.
Why is abstraction important in software design?
It simplifies problems and allows focusing on the most important aspects, employing top-down or bottom-up strategies for problem-solving.
What is a static model in software design?
A model that represents aspects of programs that do not change during program execution, like class and object models.
What is a dynamic model in software design?
A model that represents what happens during program execution, like state diagrams and sequence diagrams.
What is the difference between product and engineering design?
Product design focuses on styling, aesthetics, function, usability, while engineering design focuses on technical mechanisms and workings.
What is software product design?
Specifying software product features, capabilities, and interfaces to satisfy client needs and desires.
What skills are required in software product design?
Skills in user interface and interaction design, communications, industrial design, and marketing.
What is software engineering design?
Specifying programs and subsystems and their constituent parts and workings to meet software product specifications.
What skills are required in software engineering design?
Skills in programming, algorithms, data structures, software design principles, practices, processes, techniques, architectures, and patterns.
What is a software design method?
An orderly procedure for generating a precise and complete software design solution that meets clients’ needs and constraints.
What are the components of a design method?
Design process, design notations, and design heuristics.
What is the role of modeling in design?
Modeling is used for problem understanding, design creation, design investigation, and documentation.
What is the risk of a failing model in software design?
Models can fail if important or relevant details are left out.
What is a software product?
An entity comprised of programs, data, and supporting materials and services that satisfy client needs and desires.
What is a top-down strategy in problem solving?
Solving an abstract version of the problem first, then adding details (refinement).