CMSC 132 Fall 2005 Midterm 1 Solutions Problem 1 Software Development Testing 21 pts A 1 pt Why are large pieces of software harder to develop than small pieces of software a Larger software take much more time to write b Larger software take many more programmers to write c Larger software take much faster computers to execute d Larger software require more computer memory e Larger software are more complex B 1 pt The software life cycle is a sequence of essential operations necessary for producing quality software Which of the following operation is not part of the software life cycle a Specification b Coding c Debugging d Testing e Release C 4 pts The waterfall model of software development a Describe its basic approach Proceed from each component of software life cycle to the next b Can be used for large software projects c Is accepted as the best model for developing software T or F T or F D 4 pts The unified model of software development a Describe its basic approach Iteratively add incremental improvements in phases b Can be used for large software projects c Is accepted as the best model for developing software T or F T or F E 5 pts Problem specification is a phase of the software life cycle a Describe its basic goal Create complete accurate and unambiguous statement of problem to be solved b Specifications usually never change c Specifications can describe all possible inputs d Specifications written in English are very precise 1 T or F T or F T or F F 6 pts Program testing a What is black box testing Test behavior in response to inputs with no knowledge of code b c d e Empirical testing depends on analysis of code Empirical testing can eliminate all errors Program verification depends on calculating pre post conditions Good unit tests eliminate the need for integration tests T or F T or F T or F T or F Problem 2 Object Oriented Design 29 pts G 5 pts Procedural oriented view vs object oriented design a Describe the procedural view approach to software design View the problem as a series of actions to be abstracted into procedures b Procedural oriented view produces programs with less overhead T or F c Why do modern software developers prefer object oriented design It provides data abstraction and encapsulation H 6 pts Abstraction and encapsulation a Why do software developers use abstraction and encapsulation Reduce complexity of software b Give an example of Java support for abstraction Classes methods APIs c Give an example of Java support for encapsulation Classes with private data class libraries with API I 6 pts Inheritance a Inheritance describes a relationship between related classes b Inheritance encourages code reuse c Many forms of inheritance exist in Java d Java supports combined multiple inheritance e Provide an example of how specification is supported in Java Abstract methods classes 2 T or F T or F T or F T or F J 12 pts Given the following problem description produce an object oriented solution Include as many details as possible Draw a UML class diagram you may write code for Java classes ONLY if you don t know UML but will lose points if you do so Write a submit server for student programming projects The submit server supports two types of users students and TAs Students can submit code to the server The server must record the time and code for student submissions in a database Once submitted the server must compile code execute it using test cases as input Test cases may be public or private Scores from executing code for each test case must be recorded and saved in the database Students may get their scores for each test case from the server TAs can also obtain test scores for all student submissions In addition TAs can also examine code from all student submissions Nouns Server User Student TA Time Code Submissions Database Test Cases Scores Verbs Submit Record Compile Execute Get Scores Examine Code User Server getScore myDB Database myCode Code Student TA myTests Test submit Code examine Code recordSubmission Database Code Test Time Compile Type Scores Execute Test 3 Problem 3 Unified Modeling Language 21 pts K 6 pts UML a Provides a software blueprint for object oriented software systems b Can describes both the static and dynamic behavior of a software system c Name two types of UML diagrams excluding class diagrams Sequence use case state activity T or F T or F d Name four types of relationships between classes in a UML class diagram Association dependency generalization implementation L 8 pts Given the following Java code draw its UML class diagram you may write code for Java classes ONLY if you don t know UML Include as much information as possible in the UML class diagram public interface Device public void setPower double power TV public class Speaker int volume 1 public void setVolume int volume this volume volume public String toString return Volume volume Speaker Speaker Speaker volume int getSpeaker int Speaker toString String HDTV Power double public class TV protected Speaker speaker setPower double void public TV speaker new Speaker 2 toString String speaker 0 new Speaker speaker 1 new Speaker public Speaker getSpeaker int number return speaker number 1 public class HDTV extends TV implements Device private double power public HDTV speaker 0 setVolume 10 speaker 1 setVolume 20 power 120 public void setPower double power this power power public String toString String res speaker 0 speaker 1 return res Power power 4 2 Device setPower double void M 7 pts Consider the UML diagram below a Which class contains class F E b Which class uses class B A C c Which class may change if class E changes B F d How many instances of class F does class E have 0 or more e How many instances of class B does class E have 0 f Class D may be used wherever Class A is used g Class C may be used wherever Class F is used A B 1 D T or F T or F E C 2 F Problem 4 Java Programming 18 pts N 7 pts Java Language Features a Static initialization blocks are all executed before constructors b Non static initialization blocks are all executed before constructors c Visibility modifiers determine which variables may be used where in Java d List the four types of visibility modifiers in Java Private public protected none default package 5 T or F T or F T or F O The class Laptop is defined as follows public class Laptop implements Comparable static ArrayList allLaptops new ArrayList private int id public Laptop int id this id id allLaptops add this public String toString
View Full Document
Unlocking...