Software Engineering Flashcards
Steps Software Test Life Cycle (4 steps)
Unit Testing (verification) Integration Testing (verification) System Testing (validation) Acceptance Testing (validation)
Unit Testing
Evaluate individual components (e.g. functions or classes)
Integration Testing
- test individual comonents (2 or more) of the system as a collective group.
- To identify problems in the interface between modules and functions.
System Testing
- 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.
Acceptance Testing
- to evaluate if system is ready for release
- test can the application perform all the specified functions
What are the four pillars of Object Oriented Programming ?
Encapsulation/Privatisation
Abstraction
Inheritance
Polymorphism
Encapsulation/Privatisation
- 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
Abstraction
- 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)
Inheritance
- class can inherit the properties and methods of another class
- reusability, maintainability
(example cars)
Polymorphism
- 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
Manifesto of agile software development
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Big O nested Loop?
O(N^2)
Big O linear search ?
O(N) - look at every item if we search for item N
Big O of two loops after one another ?
O(N) - one loop is O(N)
How to determine Big O of an algorithm ?
Biggest O in the algorithm counts (e.g. O(N^2))