Grader Use Only CMSC132 Spring 2008 Midterm 2 Key 1 2 3 4 5 Software Engineering GUI Inner Classes Threads Graphs Trees Honors 30 pts 10 pts 15 pts 25 pts 20 pts 10 pts First Name Last Name Student ID Discussion TA Discussion Time I pledge on my honor that I have not given or received any unauthorized assistance on this examination Your signature General Rules Read This exam is closed book and closed notes If you have a question please raise your hand Total point value is 100 points The short answer questions are not essay questions Strive to answer them in 1 or 2 sentences Longer answers are not necessary and are discouraged WRITE NEATLY If we cannot understand your answer we will not grade it i e 0 credit PUNT RULE For any question you may write PUNT and you will get of the points for the question rounded down If you feel totally lost on a question you are encouraged to punt rather than waste time writing down an incorrect answer in hopes of getting some partial credit Honors section questions only count for credit for students in the honors section 1 Problem 1 30 pts Software Engineering a b c d e f g 1 pt Regression testing ensures functionality is not lost when software is bought sold F 1 pt Pair Programming is one of the characteristics associated with extreme programming T 1 pt Formal methods are mathematically based techniques used for high integrity systems T 1 pt We prefer inheritance over composition when designing a system F 1 pt Test coverage measures whether code is executed by some test case T 1 pt Omega testing can start once we have completed Alpha and Beta testing F 1 pt Good unit tests eliminate the need for integration tests F h 2 pts The software life cycle is a sequence of essential operations necessary for producing quality software Name two of those operations Answer Any two of Specification Design Selection of Algorithms Coding and Debugging Testing and Verification Documentation and Support Maintenance i 2 pt In code that contains two if statements what is the maximum number of flow paths through the code Answer 4 j 2 pts The Unified process model the waterfall model and extreme programming are three different software development methodologies Order these from most suitable to least suitable for developing a totally new kind of application where the functionality required by the application isn t well understood Answer Extreme Unified Waterfall k 2 pts Compare when how testing is done in extreme programming compared to the waterfall model l Answer XP testing done throughout the whole development process waterfall at the end 2 m 15 pts Draw a UML class diagram for a model of cars and their engines A car model can have one of two types of engines conventional gasoline engine or a hydrogen based engine A hydrogen based engine has a number of cells and a serial number A conventional engine has a serial number and a catalytic device that reduces toxicity of emissions You don t need to represent get set methods or constructors in your diagram Answer Engine Car Serial engine HydrogenCar Conventional Car cells catalytic 3 Catalytic Problem 2 10 pts GUI Inner Class 1 1 pt JFrame and JPanel are considered containers T 2 1 pt Inner classes can only access private components of the outer class F 3 3 pts Briefly describe the three components associated with Model View Controller model Answer Model handles data performs actual work View lets user see what program is doing Controller controls what work the program is doing 1 pt What is the Event Dispatching Thread Answer Thread where we schedule GUI processing 4 4 pts Rewrite the main method using an inner class named Handler rather than using an anonymous inner class public class GUIExample public static void main String args javax swing SwingUtilities invokeLater new Runnable public void run new GUIExample Answer public class GUIExample public static class Handler implements Runnable public void run new GUIExample public static void main String args javax swing SwingUtilities invokeLater new Handler 4 Problem 3 15 pts Threads 1 1 pt A thread child created by another thread parent will die immediately after the parent dies F 2 1 pt If multiple threads are reading a shared field they should use synchronization even if no other thread is updating the field F 3 1 pt Any lock object used to protect a critical section must always be stored in a static field F 4 1 pt A thread can only hold a maximum of two locks at a time F 5 1 pt If a thread holds a lock on an object x that prevents other threads from changing any fields of x F 6 1 pt We can use a join method call to make a thread wait for another thread to complete execution T 7 1 pt Each thread has its own stack but it shares the heap with other threads T 8 2 pts Assume t1 and t2 are two thread objects Circle the ones in which a data race could be possible between threads t1 and t2 circle one or both as appropriate if neither write NEITHER Sequence1 t1 start t2 start t1 join t2 join Sequence2 t1 start t1 join t2 start t2 join 9 6 pts Implement the delayedShutdown method in the following class public class Shutdown Print msg and shut down JVM public static void shutdownNow String msg System out println msg System exit 1 cause entire JVM to shut down Method should create and start a thread so that after sleeping for the number of seconds provided the method shutdownNow is invoked with the supplied msg This method invocation should return immediately not waiting the for the shutdown to occur public static void delayedShutdown int seconds String msg Answer 1 implements Runnable public class Shutdown implements Runnable private int secs private String msg public static void shutdownNow String msg System out println msg System exit 1 cause entire JVM to shut down public static void delayedShutdown int seconds String msg Thread t new Thread new Shutdown seconds msg t start public Shutdown int secs String msg this secs secs this msg msg 5 public void run try Thread sleep secs 1000 catch InterruptedException e e printStackTrace shutdownNow msg Alternative answers Use inner class or anonymous inner class extend Thread rather than runnable 6 Problem 4 25 pts Graphs 1 8 pts Heaps a Draw the heap that will result from adding 11 to the above heap Answer 10 12 21 11 17 15 14 b Draw the heap that will result from removing 10 from the original heap Answer 12 15 21 14 17 7 2 3 pts What is the post order traversal for the following binary tree B C D A E Answer ACEDB 8 pts BFS DFS a
View Full Document
Unlocking...