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. Try to find the flaws in your code.






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






3. Bookmark of a revised set with a title. For easy checkouts.






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






5. A reference. Has and delete dynamic memory. implies ownership (Association does not).






6. 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.






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






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






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






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






11. Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.






12. Stand up meetings show who will be valuable and needed.






13. No more than 40 hours to stop burnouts.






14. 2 Eyes + 2 Minds = AWESOME!






15. When a conflict is fixed.






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






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






18. What is part of the current scope.






19. Invalid or unexpected input that the program is not designed to process.






20. Allows you to switch your working copy to another branch.






21. Are what function classes should include.






22. Encapsulates a request as an object - thereby letting you parameterize clients with different requests - queue or log requests - and support undoable operations.






23. Takes information in the index and pushes it onto the stack.






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






25. Whats displayed to the screen






26. STOP!!






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






28. Linking to dynamic libraries is usually handled by linking to an ____________.






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






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






31. Formatted code standards.






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






33. (Door-----Spell) BI_DIRECTIONAL because both classes can reference each other. (Door--->Spell) DIRECTIONAL because only the door knows and can reference Spell.






34. When GIT cannot merge your data.






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






36. Variable doesn't exist.






37. One of the linking methods (pragma comment)






38. Do not optimize until the very end.






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






40. Creates a spin-off of a repository for concurrent development.






41. Puts all headers into a master header.






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






43. Undo changes made since your last commit.






44. Figure out what is feasible. Decide whether to use API's or to write from scratch.






45. The process of deciding which function definition to link during run-time.






46. Cross training is an important consideration to try and prevent islands of knowledge - which can cause loss.






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






48. Initialized heap memory.






49. You have to tell it to link






50. How many objects that a source object can legitimately reference.