Software Engineering Flashcards

1
Q

Steps Software Test Life Cycle (4 steps)

A
Unit Testing (verification)
Integration Testing (verification)
System Testing (validation)
Acceptance Testing (validation)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Unit Testing

A

Evaluate individual components (e.g. functions or classes)

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

Integration Testing

A
  • test individual comonents (2 or more) of the system as a collective group.
  • To identify problems in the interface between modules and functions.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

System Testing

A
  • test if collective group of integrated components performs optimally
  • to see if system fullfills quality standards.
  • to see if system complies with all major requirements.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Acceptance Testing

A
  • to evaluate if system is ready for release

- test can the application perform all the specified functions

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

What are the four pillars of Object Oriented Programming ?

A

Encapsulation/Privatisation
Abstraction
Inheritance
Polymorphism

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

Encapsulation/Privatisation

A
  • private class variables
  • can only be accesed by public functions of this class
  • restricting access, security, protection, avoid bugs through overrinding variable somewhere else
  • code is easily readable if variables clearly belong to a class
  • code is easily usable if we only need to access the functions and not the inner state of a class
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Abstraction

A
  • hide away some of the implementation details
  • e.g. in a function or class
  • easily usable
  • easily understandable code
  • reusable, maintainable
  • can be achieved through encapsulation
    (Coffee machine example)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Inheritance

A
  • class can inherit the properties and methods of another class
  • reusability, maintainability
    (example cars)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Polymorphism

A
  • appearing in different forms
  • we have the same function, which can be overriden and customized to an inherriting class
  • e.g. every car makes an individual sound - which is then printed
  • handle different data types
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Manifesto of agile software development

A
  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Big O nested Loop?

A

O(N^2)

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

Big O linear search ?

A

O(N) - look at every item if we search for item N

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

Big O of two loops after one another ?

A

O(N) - one loop is O(N)

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

How to determine Big O of an algorithm ?

A

Biggest O in the algorithm counts (e.g. O(N^2))

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

List 8 common Big O’s ?

A
  • O(1): constant time
  • O(log n): logarithmic time
  • O(n): Linear time
  • O(n log n): linearithmic time
  • O(n^2): quadratic time
  • O(n^3): cubic time
  • O(a^n): exponential time
  • O(n!): factorial time
17
Q

What is Big O?

A

analyzes the running time of an algorithm depending on the input size

18
Q

Constant-time algorithm

A
  • O(1)
  • runs in a constant time no matter how long the input is
  • e.g. programms without input
  • e.g. checking the first byte of a file (length of file is not important)