Chapter 29.3 Flashcards

(18 cards)

1
Q

Deployment

A

The system is installed on the clients machines and put into practice

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

Maintenance

A

The system can undergo continuous changes and debugging as new needs
come to the fore

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

Disadvantage of the waterfall model

A

the client gets to see the system only at the end.

If the system is not answering to its needs, it is very costly to correct

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

Advantage of agile development

A

the client is involved throughout the process and can at any time
give feedback or request changes

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

SOLID Design principles

A

-Single responsibility principle (SRP)

-Open/Closed principle (OCP)

-Liskov substitution principle (LSP)

-Interface segregation principle (ISP)

  • Dependency inversion principle (DIP)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Dependency inversion principle (DIP)

A

-states that high level parts of the system should not depend on low level parts of the system

-both low-level and high level modules should depend on some kind of abstraction

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

Interface segregation principle (ISP)

A

-No derived class should be forced to implement methods that its clients will never use.

-Derived classes should always be fatter then their parents

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

Liskov substitution principle (LSP)

A

-You should be able to substitute a parent class with any of its child classes.

-a user of a
base class should continue to function properly if a derivative of that base class was assigned
to it.

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

Open/Closed principle (OCP)

A

-Software entities (classes, methods, assemblies, etc.) should be open for extension, but closed
for modification

-Meaning that it should be possible to add functionality to a system without
changing existing code

-New features should be implemented using the new code, but not by changing existing code.

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

Single responsibility principle (SRP)

A

a module or class should have a very small piece of responsibility in the entire application

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

The downside of SOLID

A
  • longer and more complex code
  • it can extend the design process and
    make development a little more difficult
  • It requires extra time and effort
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Why are the SOLID principles important?

A
  • They aim to reduce dependencies without impacting other areas of software
  • They intend to make designs easier to understand, maintain and extend
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Design pattern

A

shows an approach to solve a certain type of problem

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

Algorithm

A

a specific solution to a specific problem in pseudocode

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

GoF Patterns

A

-Creational patterns
-Structural patterns
-Behavioral patterns

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

Creational patterns

A

provide object creation mechanisms that increase flexibility and reuse of existing code

17
Q

Structural patterns

A

explain how to assemble objects and classes into larger structures,
while keeping the structures flexible and efficient

18
Q

Behavioural pattern

A

Takes care of effective communication and the assignment of
responsibilities between objects.