Test your basic knowledge |

SWA - Software Architecture

Instructions:
  • Answer 50 questions in 15 minutes.
  • If you are not ready to take this test, you can study here.
  • Match each statement with the correct term.
  • Don't refresh. All questions and answers are randomly picked and ordered every time you load a test.

This is a study tool. The 3 wrong answers for each question are randomly chosen from answers to other questions. So, you might find at times the answers obvious, but you will see it re-enforces your understanding as you take the test each time.
1. Allows you to switch your working copy to another branch.






2. Ensure a class only has one instance - and provide a global point of access to it






3. When exporting a dll - the names of the functions are changed. This is knwon as ____________.






4. Separating out a section of code into a reusable function or class.






5. Ability to accept different types of parameters to bind to different implementations at run-time.






6. When you type in an object - you can see its attributes.






7. Are what function classes should include.






8. Code generation in a lib






9. Always do the simplest design that could possibly work.






10. Helps to eliminate unnecessary "include chaining."






11. Adds files to the repository.






12. A collection of memory addresses for all virtual functions in an objects class hierarchy.






13. Undo changes made since your last commit.






14. Symbols that can not be accessed by code in other units have __________. These symbols are usually static non-member functions/variables defined within.c/.cpp or defined in an anonymous namespace.






15. Provide a unified interface to a set of interfaces in a subsystem. Defines a higher-level interface that makes the subsystem easier to use.






16. Use only through the interface of the object.






17. Copies all changes from one branch into another branch.






18. Ability to treat a class object as a function by overloading the () operator.






19. Try to find the flaws in your code.






20. Breaks encapsulation boundaries.






21. Meetings used to create a release plan - which will lay out the overall project.






22. Link multiple projects together






23. Use this to find a memory address or signiture in a dll






24. 2 Eyes + 2 Minds = AWESOME!






25. Concept based on limiting the scope of modules to provide better structures.






26. Taking code and moving it to a function that usually returns an object. They are always virtual functions.






27. About the interface to an object. Data contained within.






28. Functionality Tests.






29. Variable doesn't exist.






30. Makes a copy of your repository.






31. A measure of logical dependency.






32. A function that can load a library






33. Having power over inheritance with the flexibility of composition.






34. The default nickname for the remote repository.






35. Plan out your code.






36. Views all previous changes.






37. Fix any problems and then repeat the process.






38. Ability to withstand change and what the effects are.






39. Compose objects into tree structures to represent part-whole hierarchies. Lets clients treat individual objects and compositions of objects uniformly.






40. Portioning your changes to commit by inserting them into the index.






41. No man's land. Guard bytes before the after allocated heap memory.






42. A group of code. unnamed can only be accessed within that translation unit - name can be accessed anywhere






43. Reusing existing functionality by defining a relationship between two classes : Inheritance or containment.






44. A type of library that is used by the code






45. Black Box - The way the program works is internally unknown.






46. Trying to access a location in memory that your computer cannot access.






47. Weak relationship between two classes. Almost always results in a #include.






48. Makes a project compile in order of who is dependent on what






49. Static in C++. Can span all instances of a class.






50. Treating a derived class's data members like it's base class's.