Midterm Examination CS 3302a - INTRODUCTION TO SOFTWARE ENGINEERING 4/27/99 The number of points for each question is given in braces. You have until 10:50 to complete the exam. You may use the four page hand-out distributed on Thursday provided you have written nothing on it. You may not use any other materials. If you have any problem interpreting a question, preface your answer with a statement describing your interpretation. In all cases select the best answer available. Write all answers onto the exam. You may use the back if necessary, but clearly number all answers. Please place your name on the top right hand corner of this page. 1. {2} List two main differences between software engineering and programming? 2. {2} Indicate which of the following statements are true about the basic COCOMO model. There may be more than one. a) Provides an estimate of the number of person months required to complete a project b) Provides an estimate of the number of persons required to complete a project c) Provides an estimate of the number of source lines required to complete a project d) Provides an estimate of the number of machine instruction required to complete a project 3. {4} List four important roles for a manager fills on a software project. 4. {2} During which phase of the life cycle are errors most costly to correct? a) Requirements b) Coding c) Testing d) Operation 5. {5} Reconcile the following two true observations. a) The later a program bug is discovered, the more expensive it is to correct. Therefore, remove as many bugs as possible, as early as possible by putting extra time and effort into the requirements and design phases. b) It is often difficult to build a system until an extensive understanding of its intended behavior is obtained. Usually the best way to obtain this is through experimenting with a working version. Therefore, begin coding as early as possible so that you discover potential problems while you still have time to fix them. 6. {2} List two properties of a good requirement (not a requirements document, just a single requirement). 7. {3} List three areas (topics) that should be considered when developing non-functional requirements. 8. {3} List three possible audiences for a requirements document. 9. {2} What is the difference between an entity and an attribute in an entity-relationship model? 10. {3} Give examples of relationships with 1:1, 1:M, and N:M cardinality. 11. {4} How are dataflow diagrams and context diagrams similar? What is the major difference in their purposes. 12. {2} What is the main reason to organize systems around objects (nouns or entities) instead of around functions? 13. {3} State charts add three main mechanisms to address the "state explosion problem" in using finite state models of software systems. Name and define each of the mechanisms. 14. {3} Match the following modeling techniques with their most appropriate use. a) ER diagrams x) Describing the abstract objects present in the problem b) Data flow models y) Describing problem situations and their transitions c) State machines z) Describing the activities and information repositories in a problem 15. {60} Consider a multi-story building for which elevators need to be provided. Your goal is to analyze customer needs and construct a list of requirements. To do, take the following steps, placing your answers, appropriately labelled either below or on the backs of the other pages of the exam. a. Goal Hierarchy: describe a set of 5-10 goals and indicate their relationships. b. Use Cases: construct a list of 5-10 use cases. c. Context Model: construct a context diagram for the system. d. Data Flow Diagram: construct a single data flow diagram describing the major constituents of the elevator system. e. Static Object Model: construct a static object model for the system. f. State Chart: construct a state chart for the system. g. Requirements List: Use the results above to construct a list of 8-12 requirements for the elevator system.