CSCI334 - Software Design Flashcards

1
Q

What is software design?

A

The activity of specifying the nature and composition of software products that satisfy client needs and desire subject to constraints.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is the importance of software design?

A

Design is economically important and affects our quality of life; a good product design can directly affect life for better or worse.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is an abstraction in software design?

A

Suppressing or ignoring some properties of objects, events, or situations in favor of others. It’s an important problem-solving technique.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Why is abstraction important in software design?

A

It simplifies problems and allows focusing on the most important aspects, employing top-down or bottom-up strategies for problem-solving.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is a static model in software design?

A

A model that represents aspects of programs that do not change during program execution, like class and object models.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is a dynamic model in software design?

A

A model that represents what happens during program execution, like state diagrams and sequence diagrams.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is the difference between product and engineering design?

A

Product design focuses on styling, aesthetics, function, usability, while engineering design focuses on technical mechanisms and workings.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is software product design?

A

Specifying software product features, capabilities, and interfaces to satisfy client needs and desires.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What skills are required in software product design?

A

Skills in user interface and interaction design, communications, industrial design, and marketing.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is software engineering design?

A

Specifying programs and subsystems and their constituent parts and workings to meet software product specifications.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What skills are required in software engineering design?

A

Skills in programming, algorithms, data structures, software design principles, practices, processes, techniques, architectures, and patterns.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is a software design method?

A

An orderly procedure for generating a precise and complete software design solution that meets clients’ needs and constraints.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are the components of a design method?

A

Design process, design notations, and design heuristics.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is the role of modeling in design?

A

Modeling is used for problem understanding, design creation, design investigation, and documentation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is the risk of a failing model in software design?

A

Models can fail if important or relevant details are left out.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is a software product?

A

An entity comprised of programs, data, and supporting materials and services that satisfy client needs and desires.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What is a top-down strategy in problem solving?

A

Solving an abstract version of the problem first, then adding details (refinement).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What is a bottom-up strategy in problem solving?

A

Solving parts of a problem and connecting them for a complete solution.

19
Q

What is the importance of design in software?

A

Affects quality of life and has economic significance; good design improves life quality.

20
Q

What is a design process?

A

A collection of related tasks that transforms a set of inputs into a set of outputs.

21
Q

What are design notations?

A

A symbolic representational system, such as UML.

22
Q

What are design heuristics?

A

Rules providing guidance but no guarantee for achieving some end.

23
Q

What is the importance of models in software design?

A

They are crucial for understanding, creating, investigating, and documenting designs.

24
Q

How do static and dynamic models differ?

A

Static models represent unchanging aspects of programs, while dynamic models represent changes during execution.

25
Q

What are the key aspects of software product and engineering design?

A

Product design focuses on user experience and functionality, while engineering design focuses on technical implementation.

26
Q

What is a Software Product

A

An entity comprised of one or more programs, data, and supporting materials and services that satisfies client needs and desires either as an independent artifact or as essential ingredients in some other artifact

27
Q

What is Software Design

A

The activity of specifying the nature and composition of software products that satisfy client needs and desire, subject to constraints
Software designers do what designers in other disciplines do, except it’s for software products.

28
Q

What is Abstraction

A

Abstraction is suppressing or ignoring some properties of objects, events, or situations in favor of others
Abstraction is an important problem-solving technique, especially in software design

29
Q

What is the importance of Abstraction

A
  • Problem Simplification
  • Structuring problem solving
30
Q

What is Problem Simplification in regards to Abstraction

A

Abstracting allows us to focus on the most important aspects of a problem

31
Q

What is Structuring problem solving in regards to Abstraction

A

Top-down strategy: Solve an abstract version of the problem, then add details (refinement)
Bottom-up strategy: Solve parts of a problem and connect them for a complete solution

32
Q

What is Modelling used for in Software Design?

A
  • Problem understanding
  • Design creation
  • Design investigation
  • Documentation
33
Q

What are Static Models

A

Static model represents aspects of programs that do not change during program execution
(Examples include class and object models)

34
Q

What are Dynamic Models

A

Dynamic model represents what happens during program execution
(Examples include state diagrams and sequence diagrams)

35
Q

What is Product designers

A

Product designers are concerned with styling and aesthetics, function and usability, manufacturability and manageability

35
Q

What are Engineering designers

A

Engineering designers are concerned with technical mechanisms and workings

36
Q

What is Software Product Design

A

Software product design is the activity of specifying software product features, capabilities and interfaces to satisfy client needs and desires

Requires skills in user interface and interaction design, communications, industrial design and marketing

37
Q

What are the three Design Method Components

A

Design Process, Design Notations, Design Heuristics

37
Q

What is Software Engineering Design

A

Software engineering design is the activity of specifying programs and sub-systems, and their constituent parts and workings, to meet software product specifications

38
Q

What is the Software Design Method

A

A software design method is an orderly procedure for generating a precise and complete software design solution that meets clients needs and constraints

39
Q

What is Design Process

A

A collection of related tasks that transforms a set of inputs into a set of outputs

40
Q

What is Design Notations

A

A symbolic representational system (e.g. UML)

40
Q

What is Design Heuristics

A

Rules providing guidance, but no guarantee for achieving some end