DRAFT PUBLIC COSC101 EXIT EVALUATION OF
OBJECT ORIENTED SOFTWARE DEVELOPMENT
(http://faculty.frostburg.edu/cosc/htracy/UML/publicEval_00SD-cosc101-forStudents.html)

Multiple Choice Questions

Note that the multiple choice questions may have more than one correct answer; you should circle only the most appropriate answer.
  1. (Modularization) The essence of the divide and conqueor strategy of all software development is: (a) classes  (b) procedures and functions  (c) modularization  (d) algorithms  (e) none of these
  2. (Modularization) What is the standard schematic representation of an abstract algorithm, from which one would write procedural code in any language?  (a) UML class diagram  (b) object model  (c) flowchart  (d) pseudocode  e) none of these    SAC
  3. (Modularization)Algorithm development is to programing as ___________ is to object oriented software development.  (a) modularization  (b) modeling  (c) diagramming  (d) divide and conqueor  (e) analysis and design
  4. (Modularization) The object oriented equivalent of program is:  (a) package  (b) class  (c) algorithm  (d) UML diagram  (e) architecture
  5. (Modularization) What is the standard representation of an abstract OO architecture, from which one would write OO code in any language?  (a) UML class diagram  (b) object model  (c) flowchart (d) algorithm  (e) none of these
  6. (Modularization)If a piece of software contains everything to "do it's job" and nothing more, it is said to be.  (a) modular  (b) highly cohesive  (c) loosely coupled  (d) algorithmic  (e) a class
  7. (Modularization)If a software element can be plugged into various software architectures or algorithms it is said to be.  (a) modular  (b) highly cohesive  (c) loosely coupled  (d) algorithmic  (e) all of these
  8. (Modularization)The key feature of OOSD is that classes (select one only):  (a) modularize software  (b) encapsulate behavior and state  (c) are represented by UML diagrams  (d) model real world systems  (e) are related in software architectures
  9. (Intro) Before the advent of the object oriented paradigm the equivalent of a software architecture would be the: (a) pseudocode (b) procedure (c) anagram (d) program  (e) all of these
  10. (Intro) Interactions between classes, in a UML diagram, are represented by:  (a) links  (b) connections  (c) relationships  (d) messages  (e) all of these
  11. (Intro) Flowcharts, class diagrams, pseudocode would all be considered ________________ of software.  (a) implementations  (b) abstract representations  (c) algorithms  (d) instantiations  (e) none of these
  12. (Intro) What is the standard, static representation of an abstract OO architecture, from which one would write OO code in any language?  (Select as many as necessary.)   (a) UML class diagram  (b) object model  (c) flowchart, SAC, or pseudocode (d) algorithm
  13. (Intro) The logic of software task is expressed in its:  (a) implementation (b) procedure (c) algorithm  (d) program (e) architecture
  14. (Overview) The most fundamental "construct" (something with which software is "constructed") in object oriented software development is:  (a) object  (b) algorithm  (c) module  (d) model  (e) none of these  {I think this is the most important question in OOSD.  It is "tricky" because all answers "could" be acceptable (except for b), but "none of these" is, by far, the best answer!  Might give half credit for a, c, or d, but ask why these are not "good" answers.}
  15. (Overview, K) The UML construct used to encapsulate collections of related classes and interfaces is:  (a) package  (b) pattern  (c) framework  (d) component  (e) architecture
  16. (Overview, K) The creation of an object is called:  (a) declaration  (b) instantiation  (c) initialization  (d) implementation  (e) none of these
  17. (Overview, K) In the definition of a class the developer encapslates the class ____________.  (a) attributes  (b) members  (c) methods  (d) objects
  18. (Overview) The fundamental OOP language construct for implementing object oriented behavior is:  (a) function   (b) operation  (c) method  (d) procedure  (e) program
  19. (Overview) The fundamental OOP language construct for specifying the state of an object is:  (a) attribute  (b) variable  (c) instance  (d) class
  20. (Overview) Which of the following is not actually created by a software developer?  (a) class  (b) abstract class  (c) interface  (d) instance  (e) note  
  21. (Overview) Which of the following is an OO language facility that is used to implement one of the fundamental UML relationships?  (a) polymorphism  (b) encapsulation  (c) visibility  (d) inheritance.
  22. (Overview) The UML term for the control of access to class member is:  (a) polymorphism  (b) encapsulation  (c) visibility  (d) information hiding  (e) security
  23. (Overview) Of the following, which are Java implementations of other answers?  (a) member  (b) attribute  (c) operation  (d) field  (e) method  
  24. (Overview, abridged) Multiplicity is associated with which type of UML relationship?  (a) association  (b) generalization  (c) realization  (d) combination  (e) dependency
  25. (Overview, abridged) Which of the following relationships are represented by solid lines between classes?  (a) association  (b) generalization  (c) realization  (d) combination  (e) dependency
  26. (Overview, abridged) Which of the following is NOT a UML relationship?  (a) association  (b) generalization  (c) realization  (d) combination  (e) dependency
  27. (Overview) Of the following, which is a language facility that allows the implementation of some of the others?  (a) generalization  (b) specialization  (c) realization  (d) extension  (e) inheritance
  28. (Overview) Which of the following is the least commonly used term for a UML reationship?  (a) is-a  (b) has-a   (c) realizes-a   (d) uses-a 
  29. (Overview) A visibility category that is not available in all object oriented software development lanugages is: (a) public  (b) private  (c) protected  (d) package  (e) all of these
  30. (Overview) Communications between instances are performed by   (a) messages  (b) relations  (c) relationships  (d) interactions  (e) interfaces
  31. (Overview) An extension of the object oriented concept of classes is:   (a) components  (b) frameworks  (c) patterns  (d) all of these
Fill-In-The-Blank and Matching Questions
  1.  {Modularization Not on 240 quiz.} The guideline for effective modularization (both in structured programming and OO software) is that modules should be (a) _________________ and (b) _________________.
  2. (Intro/Overview) Match the following concepts with its synonym or the term most closely associated term; do this by writing the letters of the left column after the words in the right column.
    1. algorithm           software
    2. instanciation       structured programming
    3. implementation      attributes and operations
    4. members             creation
    5. abstract object     class
  3. (Intro/Overview) Match the following OOP concepts with the equivalent UML term; do this by writing the letters of the left column after the words in the right column.
    1. is-a                association
    2. has-a               dependency
    3. uses-a              attribute
    4. behavior            generalization
    5. state               operation
  4. (Overview) From a (very) simple viewpoint, one could say that inheritance allows the reuse of ____________ and polymorphism allows the reuse of _______________.
  5. (Overview) A UML class diagram contains (a) _________________ and (b) __________________.
  6. When I develop object oriented software, I "create" _________(a) and then I ________(b) them thus creating a software _____________(c) (analagous to, but NOT, a "program").  They get ___________(d) when the software is executed; then they become _______________(e).    (Note that "develop object oriented software" means "from start to finish", i.e from conception to writing C++ or Java, etc. code.  This means that "implement", "compile",  or "code" do not fit in any of these blanks because they are implied when I said "develop object oriented software".)

Short Answer Questions
  1. (Modularization; U) What is the (a) similarity and (b) difference between structured programming and OOSD?
  2. (Modularization; U) What is the (a) similarity and (b) difference between object and class?
  3. (Intro, K) Why are UML class diagrams important in COSC 101 thru COSC 241?
  4. (Intro, K) List the encapsulation constructs of OOPL.  (b) Draw the UML representation of each. 
  5. (Intro, K) (a) List all the fundamental "semantic" relationships between the encapsulation constructs of OO software.    (b) Distinguish each of these with a single concise phrase describing it on the same line.  (c) Draw its UML representation. 
  6. (Overview, U) What is the most important (a) similarity and (b) difference (1) between a software model and a software architecture, (2) between encapsulation and modularization,  (3) association and dependency,  (4) between encapsulation and visibility, (5) between visibility and multiplicity (6) between operation and method.
  7. (a) Illustrate, with a UML class diagram, all the classifiers and all possible relationships between them; label each classifer and each relationshipOrient the classifiers in the traditional way.  (b) Include one (only) simple example of each classifer property (things appearing within a classifier).  (c) Illustrate all possible characteristics of each relationship.
  8. (Intro/Overview, S) (a) Draw the UML class diagrams with inter-class relationships for an "efficient" object oriented architecture of a "Polygon Analyzer" application that determines the area, perimeter, and location of triangles, squares, and rectangles from data input by a user.  Use, among others, 5 classes: (1) Triangle, (2) Square, and (3) Rectangle; (4) UserInterface which instantiates local variables testTriangle, testSquare, and  testRectangle and allows the user to give them various values, and (5)  Point2D which specifies the location of a point (which is used to designate each object's center).   (b) Expand this architecture by incorporating the MOST useful abstract class for this software architecture. (c) Write a skeleton code for the Java  implementation of this architecture; do NOT write the code for any of the methods (Replace this with comments.).
  9. (Intro/Overview, S)  (a) Given the following class architecture, draw the UML class diagram that documents the architecture.  Class G is a generalization of class  C. G has an procedural method mG1, and  C has a functional method mC1 whose return type is a class R; both methods can be used by any class. C has private attributes aC1 and aC2 both of which are of type A (a class).  I/O is accomplished via an class UI that contains a main method that instantiates class C. Be sure to include the directionality and multiplicities of all relationships.