Chapter 10 Multiple Choice and True/False Answer Keys for Parts 1 and 2 Check Your Understanding Part 1 For a quick review to see what you've learned so far, answer the following questions. Visit pearsonhighered.com/techinaction to check your answers. Multiple Choice 1. In the SDLC, in which phase is the program specification developed? a. problem and opportunity identification b. analysis c. design d. development 2. The step of the SDLC in which we document the transfer of data from the point where it enters the system to its final storage or output is the a. problem and opportunity identification phase. b. analysis phase. c. design phase. d. development phase. 3. The life cycle of a program begins with describing a problem and making a plan. Then the PDLC requires a. coding, debugging, and testing. b. process, input, and output. c. data, information, and method. d. an algorithm. 4. A yes/no decision point in an algorithm is called a a. loop. b. binary decision. c. test condition. d. control structure. 5. In object-oriented analysis, classes are defined by their a. objects and data. b. data and methods. c. operators and objects. d. behaviors and keywords. True–False _____ 1. Object-oriented design promotes a high level of reuse of existing code. TRUE _____ 2. The SDLC and the PDLC are different because one is for mobile devices and one is for developing desktop applications. FALSE Part 1: Critical Thinking 1. Using Data and Methods Think about which classes would be important in modeling a band that is about to go on a national concert tour. The band already has a website, a presence on Twitter and Facebook, and a local following at area clubs. The band signed a new manager last year, and the members have all been with the group for a while. They hope to get on bills with other independent-label bands. What data and methods would each class need? How would the classes be related to each other? Students would need to recall that in the object-oriented approach, programmers identify and define each class, as well as their data and meth- ods. Programmers then determine how classes interact with each other. The following table shows some examples of classes that can be used. Students can brainstorm additional classes, data, and methods that would be needed. The classes listed in this example are base classes when using the object-oriented approach. Students may have additional information to add. Responses from students with programming majors should be more detailed than from students with other majors. Class Data Method Concert ConcertDate, ConcertLength DisplayConcertInfo Location City, State DisplayLocation TicketSales CostEach TotalSales Expenses Mileage, Lodging, Meals TotalExpenses 2. Class Hierarchy A common test for deciding the structure of a class hierarchy is the “is a” versus “has a” test. For example, a motorcycle “has a” sidecar, so Sidecar would be a data field of a Motorcycle object. However, a motorcycle “is a” kind of vehicle, so Motorcycle would be a subclass of the base class Vehicle. Use the “is a” versus “has a” test to decide how a class structure could be created for computer peripherals. For example, consider that printers are a type of peripheral and that there are laser printers, inkjet printers, 3-D printers, color printers, black-and-white printers, and thermal printers. Work to separate the unique features into objects and to extract the most common features into higher-level classes. Students might work together to create classes and to extract them into higher-level classes. They should research the terminology used to define classes in object-oriented programming and how some terms are interchanged. (Derived and base classes are often referred to as subclasses and superclasses.) Check Your Understanding Part 2 For a quick review to see what you've learned so far, answer the following questions. Visit pearsonhighered.com/techinaction to check your answers. Multiple Choice 1. What do software companies provide to repair code errors for a program that has been released to the public? a. beta versions b. service packs c. service agreements d. maintenance programs 2. Which language is best for creating iOS-based mobile applications? a. C/C++ b. Objective C c. Java d. ASP 3. Which is NOT an advantage of Java? a. Java is architecture neutral. b. Java needs to compile only once prior to distribution. c. Java supports network communications. d. Java performs faster than C++. 4. Which is TRUE about XML? a. XML supports the development of rich multimedia. b. XML makes it possible to update Web pages without refreshing. c. XML enables designers to define their own data-based tags. d. XML has classes that represent drop-down lists and other Web elements. 5. HTML5 features helpful new tags like a. <audio> and <video> b. <movie> and <actor> c. <metaheader> d. <div> True–False _____ 1. When producing the fastest executable program is essential, programmers use a language with an interpreter. FALSE _____ 2. Programmers often use ActionScript to code prototypes for Windows applications. FALSE Part 2 Critical Thinking 3. Something for Nothing The open-source software movement depends on the participation of a number of people from all over the world. Some individuals donate time by writing code; others do testing or documentation. Projects are then made available free to users. Does the open-source movement threaten or strengthen the software industry? Could it replace the existing business model for distributing software? Are there any benefits to working for free and giving your intellectual property away? This question is suitable for debate. For an in-class situation, students could be assigned to one of two groups which will debate one position or the other (in favor of the open-source movement or opposed to it). Students should analyze what outcomes might result from either extreme (the open-source movement diminishes to practically nothing, or it grows tremendously in strength and participation). For other class situations, students could prepare a report supporting one position or the other, or they could prepare a report analyzing both scenarios. Students could report on how they are most capable of contributing to the open-source movement. Students could analyze how likely it is for the open-source movement to either lose or to gain a significant amount of strength and participation. 4. Gathering Insights There are many different ways to decide which programming languages are the most popular today. The Google Insights beta tool lets you compare search patterns and usage across specific regions, categories, or time periods. How would Insights help you to determine the most popular programming languages? If you didn’t have a tool such as Insights available, where would you go to conduct a survey on which programming languages are popular? What individuals would you survey? How would you expect their answers to differ from one another? This is a good overall analysis questions for both programming majors and other majors. Student responses should be organized and easy to follow. Regardless of the specific recommendations or viewpoints, thoroughness should be evident.