Table of Contents Answer Key ................................................................................................................................... 4 Audioscripts ................................................................................................................................... 13 Answer Key ..................................................................................................................................... 16 Audioscripts ................................................................................................................................... 26 Answer Key .................................................................................................................................... 30 Audioscripts .................................................................................................................................. 41 Book 1 Answer Key Unit 1 Unit 2 1 Suggested Answers 1 Suggested Answers 1 There are many steps involved in creating software. Software must be written. Then, it is designed and further developed. Software, once it is ready, is installed in the hardware where it will be used. It then needs to be tested to see if there are errors. The performance of the software is evaluated to see if it is efficient. 2 Software engineers play an important role in computer function. Computers use software to operate. Software engineers are responsible for designing and developing software that helps the computer to know what to do. Software engineers must be able to write software on a variety of topics that they may be unfamiliar with. 2 1C 2D 3B 3 1D 2H 3G 4A 5B 6C 4 1A 1 If someone has a computer for personal use, it is usually a PC, which stands for personal computer. Many PCs are desktops and are strictly for home use. Others are laptops or notebooks, which can be easily transported and used outside the home. Tablets are becoming more popular, and are even easier to carry around. 2 Businesses and individuals often use similar hardware, but many businesses have larger networks of computers. Corporate servers can tie multiple workstations to the same networks and databases. For industries that require more advanced computing power, computing clusters are sometimes used. Many businesses also install embedded computers in company vehicles and equipment. 7F 8E 2B 2 1D 2D 3B 3 1C 2A 3B 4 1 notebook 2 server 5 Suggested Answer Programming-in-the-large involves writing software in large groups over a longer period of time. Programming-in-thesmall involves smaller groups or individuals for writing simpler software. 6 1T 7 2T 3F 1 software engineering 4 be hard 2 programming-in the-large 5 evaluate 3 investigate problems 6 sounds like 8 Suggested Answer 5 5D 3 computers 5 embedded computers 4 computing cluster Suggested Answer Tablets are useful because they are small and provide added mobility. 6 1T 7 4E 1 2 3 2F 3T working on finish that laptops and desktops 4 tablets 5 Lots of people 6 this version 8 Suggested Answer A: What are you working on? A: I’m interested in software engineering. Is it a good career B: I’m working on the software for the corporate server. choice? A: Wait, didn’t you finish that already? B: I think so. You are a good judge. You’d enjoy evaluating B: Sort of. I finished setting it up with all the office programs for efficiency. workstations. A: I agree. I like evaluating things. B: Do you also like being creative when writing software? A: So what are you doing now? A: Yes, I do. B: Next, I’m going to tie in the embedded computers in the B: It can be challenging but it is very rewarding. company vehicles. A: I can’t wait to learn more about it. A: That’s a good idea. Lots of employees work in the field. B: Thant’s why this version needs to work well on a small 9 Suggested Answer screen. Is Software Engineering Right for You? Rewards 9 Suggested Answer - Engineers can design many types of programs. Project: Corporate Server Software - The job comes with opportunities to investigate problems Current Progress: So far, I developed the program for use on and develop creative solutions. the office workstations. Challenges Reason for Extension: I would like to develop the program for - It can be hard to take critical evaluation. use on embedded computers in the company vehicles because - Engineers must practice extensively to write effective lots of employees work in the field. An important feature of the programs. 4 Answer Key Book 1 Answer Key new version will be ease of use on a small screen. 9 Suggested Answer Customer: Leah Carmichael Order Number: 04772 Description of Problem: The customer was supposed to receive four laser printers and four inkjet printers. Instead, she received only four laser printers. Correction Needed: We need to send four inkjet printers right away. Please describe any special offers you made to the customer: I agreed to include a package of flash drives in the order, free of charge. Unit 3 1 Suggested Answers 1 Several accessories are used to put information into a computer. A keyboard is the best device for putting words, numbers, and other data into a computer. A QWERTY keyboard is the most common type in many countries. To navigate the screen and make selections, users can move and click buttons on a mouse. Many optical mice are now wireless. Scanners allow users to copy images into a computer. 2 Computers typically display information on a screen, Unit 4 which is housed in a monitor. Most monitors today are flat panel monitors. Users often need to produce hard 1 Suggested Answers 1 A computer is protected from damage primarily by the copies of images on the screen. Printers allow for this outer case. This part of the computer must be rigid and function. Laser printers are very fast and precise, but durable. Some computers have additional covers on they do not display different colors well. For photos and particular parts of extra protection. To prevent other detailed images, inkjet printers are better. overheating, computers have fans to increase overflow, and heat sinks to carry heat away from the working parts 2 1T 2T 3F of a computer. 3 1 wireless 3 flat panel 5 laser printer 2 A computer cannot function at all without a power supply. 2 scroll wheel 4 keyboard 6 peripherals Some computers must be plugged into an outlet, while others can operate from battery power. The power supply 4 Displaying information: inkjet printer, monitor carries power to the motherboard, which routes it Inputting information: optical mouse, scanner appropriately. Once a computer has power, the way it Storing information: flash drive recognizes and interprets information is determined by 5 Suggested Answer the processor. Some optical mice have scroll wheels to facilitate easy movement up and down on the screen. Some optical mice are wireless, and do not need to be physically plugged into the computer. 2 1T 3 1 A cover 6 1B 4 7 1 can I help 2 is incorrect 3 I’m sorry 2A 4 optical mice 5 How many 6 none of them 8 Suggested Answer A: Thanks for calling Worldwide Comp Supply. How can I help you? B: I’m calling about order number 04772. Some of the order is incorrect. A: I’m sorry about that. What’s the problem? B: I ordered eight printers. But only four arrived. A: We’ll get this fixed right away. I see you ordered two kinds. Which ones were missing? B: I received the laser printers, but not the inkjet printers. I needed this equipment immediately. A: Again, I’m really sorry. I’ll throw in a package of flash drives for free. 2F 3F B processor 2 A case B port Cooling: heat sink, fan Routing Energy: power supply, motherboard Accessing Data: hard drive, CD/DVD drive 5 Suggested Answer Most computers have a fan to improve airflow, and a heat sink to carry heat away from the computer’s working parts. 6 7 8 1 slow processor 2 warm case 1 problem 2 overheating 4 loud fan 5 defective heat sink 3 really slow 4 make a lot 5 the fan 6 heat sink Suggested Answer A: Have you used the computer in the downstairs office? B: No. Is there a problem with it? A: Yes. I think it’s getting wet. B: That’s not good. Why do you say that? A: It’s really close to a window. And I heard some hissing noises near the power supply. Answer Key 5 Book 1 Answer Key A: I agree. Modern software is much easier to understand. B: Are you ready for the test next week? A: I think so. I’ve been reviewing hardware components. B: That’s good. Don’t forget to study about firmware too. B: If I were you, I’d get a waterproof cover for it. A: I’d better give that a try. 9 Suggested Answer Machine: Computer in the downstairs office. Describe problem: I noticed that the computer is really close to a window and there are hissing noises coming from near the power supply. I think that the computer is getting wet. Request: The computer needs a waterproof cover. Unit 5 9 Suggested Answer operating system device driver windowing system easy navigation. manages hardware, allows a user to perform functions allows a computer to interact with additional devices organizes applications into boxes for 1 Suggested Answers Unit 6 1 A system software allows computers to operate and it 1 Suggested Answers comes in many forms. A basic system software allows 1 Threats to computer security are often in the form of users to enter commands directly into a computer. These malware. Some malware is not designed to alter the commands dictate what programs a computer will run. computer’s performance, but simply to collect data from The also dictate how a computer’s hardware will operate. the computer. These programs are known as spyware, Operating systems run a computer without direct and they are typically used to gather sensitive personal commands from a user. These systems manage or financial information. Another type of malware is a applications and hardware automatically. computer virus. This can cause serious damage to a 2 Some systems’ software require users to enter computer, and can even prevent it from functioning commands directly. These commands are typed into the altogether. computer through a keyboard and carried out by the 2 To protect against security threats, computer users can computer. More sophisticated operating systems use install various types of security software. Firewalls keep windowing systems. These systems display information unauthorized users out of a network, so they cannot and options in windows. These windows are easy for access sensitive information. An antivirus software is users to navigate and do not require users to enter designed to detect various types of malware. It prevents commands directly. the installation of dangerous programs. It also detects and removes these programs once they are present. It 2 1A 2D 3B may have to quarantine certain files until the threat is removed. 3 1D 2E 3A 4B 5F 6C 2 1T 2F 3F 4 1 A hardware 2 A device driver B firmware B system software 3 1 deny 2 permits 3 security software 4 Security threats: malware, spyware, virus Security programs: antivirus software, firewall Operating systems are used to manage the hardware and Protective actions: quarantine, removal software of a computer. 5 Suggested Answer 6 1F 2T 3T Spyware and viruses are both malware, but they function differently. Spyware is hidden software that collects personal 7 1 system software 4 quiz tomorrow data from the computer, and users often do not notice it is 2 hard assignment 5 chapter again there. Viruses, on the other hand, usually noticeably disrupt 3 modern operating systems 6 forget to study computer functions. 5 Suggested Answer 8 Suggested Answer 6 A: What did you think of that assignment about firmware? B: I think I did well. That assignment was hard, though. 7 A: I thought so, too. B: I’m ready to study windowing systems. They are much easier. 6 Answer Key 1C 2A 1 removed the spyware 4 2 confidential information 5 3 security software 6 happen again keep trying better update Book 1 Answer Key 8 Suggested Answer 5 A: I removed the virus from your company’s system B: Thank you. Our systems contain a lot of important information. A: I can see that. If you don’t update your security software, you could really be in trouble. B: Really? You think this will happen again? A: Whoever wanted to damage your system is likely to keep trying. B: I guess we’d better update the company’s antivirus software, then. A: Definitely. And I recommend a better firewall. B: What does that do? A: It will prevent unauthorized access to the company network. Suggested Answer An IDE usually provides a text editor for programmers to enter code and a debugger. Other tools may include a linker, a compiler, or an interpreter. 6 1B 7 1 about the difference 2 a linker connects 4 reads the information 5 what decodes 3 interpreter 6 programming languages 2A 8 Suggested Answer A: Can you help me with something? B: Sure. What is it? A: I’m confused about the difference between IDEs and text editors. B: A text editor is used to write series of codes for programs. A: Then what does an IDE do? B: An IDE basically does the same thing but it provides the programmer with more tools to use. A: I see. I was under the impression that an IDE was a text editor also. B: It is, but it’s a text editor with additional tools to make program writing easier. 9 Suggested Answer Dear Mr. Greene, I am concerned about your company’s computer security. When I inspected your systems, I discovered a virus. This is dangerous because it could have damaged your system and lost your confidential information. To keep your systems safe, I recommend upgrading your antivirus software. This will help because it will prevent the installation of dangerous malware. Let’s meet to discuss this further. Danielle Corwin SharpAlert Computing Systems 9 Suggested Answer Debugger / Interpreter: A debugger is used for finding and correcting errors in code. An interpreter is used for translating code written in different programming languages. 1 Suggested Answers Programing language / Text editor: A programming language 1 Programmers create new programs using programming is used for writing code that a computer can interpret and software. This software allows them to enter long series execute. A text editor is used to enter lines of code and create of instructions into a computer. When the computer programs. carries out these instructions, this is known as a program. Programmers enter commands in code. This code is known as a programming language. There are different Unit 8 types of software the programmers use to enter code. 1 Suggested Answers Some software is very basic. Other software provides 1 Most businesses use an office suite. This software programmers with additional tools to make programming usually includes a word processor and a spreadsheet easier. application. Some offices use accounting software 2 The most basic programming software is a source code applications. These software allow a business to keep editor. This software provides programmers with a text track of expenses and transactions. Some businesses editor. Programmers enter code into the text editor to may use desktop publishing software to create posters, create programs. More complex software offer brochures, or other printed material. programmers more tools. IDEs generally provide 2 Many people use video editing software and image programmers with a text editor, debugger, and other editing software at home. This software allows them to tools. These tools may include a linker, a compiler, or an edit and their pictures and videos. Many people also use interpreter. accounting software at home to keep track of their finances and do their taxes. People often use word 2 1F 2T 3F processors at home to type documents or read documents that have been sent to them. 3 1F 2B 3C 4A 5E 6D Unit 7 4 1 A IDE B text editor 2 A linker B debugger 2 1C 2A 3C 3 2B 3B 1A 4A Answer Key 7 Book 1 Answer Key 4 1 Accounting 2 office suite 5 Suggested Answer 3 enterprise software 4 Image editing 5 web browser 3 6 spreadsheet 4 The company offers an office suite, accounting software, image and video editing software, enterprise software and desktop publishing software. 1A 2B 3D 4E 5G 6H 7B 8F A businessperson might use a variety of programs. One example is a cost analysis program. Another example is software that aids in processing payroll. 1F 7 1 the memo 3 the office suite 5 be updated 7 2 accounting software 4 other programs 6 see what you mean 8 Suggested Answer 3F 2A 5 Suggested Answer 6 2T 1C 6 1T 1 2 3 2F 3T software developments working cost analysis 4 route planning 5 adapt 6 digital assistants A: Did you see the memo from the CEO? 8 Suggested Answer B: You mean the one about the video games? A: Where are we on software developments? A: I can’t believe they want to start making video games. B: We are working on a few new projects. B: I think it’s a good idea. It’s a whole market for us to break A: I only know about the payroll program. into. B: We started working on a mobile app for route planning. A: I’m worried about what that will mean for all the other A: Can you tell me more about that? applications that we make. B: We used the computer program that already existed and B: What do you mean? downsized it. A: I’m afraid if we focus on making video games the quality A: When will it be ready for the market? of our other software might go down. B: It should be finished in a few days. B: I see what you mean, but I don’t think that will happen. 9 9 Suggested Answer Suggested Answer Image editing software: Use this software to perfect your photos and preserve your family memories. Office suite: Use this software to create and print text documents or to put together presentations. Accounting software: This software will help you keep track of your budget on a monthly or weekly basis. It’s a good program to have when tax season comes. Video editing software: use this software to edit video footage from your camera or phone into movies with captions and music. Dear Ms. Thompson, We recently finished a payroll program. Another project is a mobile app for route planning. So far, we have taken an existing computer program and downsized it. Since bioinformatics is so popular, we will begin writing a new program for it. Most of these programs will be accessible on digital assistants. Sincerely, Owen Unit 9 Unit 10 1 Suggested Answers 1 Suggested Answers 1 Software serves many varied purposes. Many professional programs are for data management. For example, some software keeps track of payrolls. Other programs are for personal purposes, such as route planning. These programs use satellite navigation to create a map of the world. 2 Software engineers must be able to write for many industries. Software has many professional and recreational uses. Software engineers must be able to create programs wherever they’re needed. That means they must often write for industries that they are largely unfamiliar with. 2 1B 8 Answer Key 2B 3A 1 A computer desktop usually has features that allow a user to access programs quickly. Most have a button that opens a menu of all the files and programs on the computer. They also typically have the option to save shortcuts to commonly-used files. These appear as folders or icons on the desktop. 2 Starting programs from a GUI is usually an easy, intuitive process. In many cases, users can select something by simply clicking or double-clicking an icon. To install a program, users may need to select “run” from a menu. Depending on the program, commands like “open” or “launch” may be available from a file selection menu. Book 1 Answer Key 2 1F 2T 3F 3 1F 2E 3A 4 1B 2B 3A 5 Suggested Answer 3 1 A over B times 4D 5C 6G 7B 4 2 A Add B subtract Combining amounts: multiplied by, plus Splitting amounts: less, minus, divided by Expressing results: equal To bring up the dropdown menu, a user must right-click 5 Suggested Answer If someone accidentally subtracts an amount instead of the icon for the program. adding it, the result will be lower than the original amount 6 1B 2B instead of higher. 7 1 can I help 2 open it 3 your desktop 8 Suggested Answer 4 nothing happens 5 right-click 6 I try that A: Thanks for calling DRD support. How can I help you? B: I tried to run your new software. But I can’t get past the setup guide. A: I’m sorry to hear you’re having trouble. What does the screen say? B: It’s asking for my email address. But nothing happens when I start typing. A: Do you see the cursor in the box? B: No. There’s nothing there. A: Go ahead and click in the box. B: I see. It’s letting me type now. 9 Suggested Answer Problem: The program does not open when I click the icon. Solution: Remember to right-click the icon to bring up the dropdown menu. Problem: The program does not accept my email address when I start typing. Solution: Click in the text box and make sure you see the cursor appear there before typing. Unit 11 61D 2A 7 1 new program 3 2 schedule 4 you finish fifteen hundred 5 divided by 6 three engineers 8 Suggested Answer A: What’s the status on the new program? B: We’re right on schedule. A: Will you finish it by Monday? B: That’s five day away, right? And we need about twelve hundred more lines of code. A: Twelve hundred divided by five is two hundred forty lines per day. Can you do it? B: I think so. We have four engineers working on it. A: So you need each engineer to do sixty lines per day. B: Sixty? Oh, of course. Sixty lines times four engineers equals two hundred forty. 9 Suggested Answer Hi Grant, The development of our new program is right on schedule. We have four engineers working on the project. According to the schedule, we have five days left to complete twelve hundred lines of code. If each engineer completes sixty lines per day, we can complete the project on time. Here are my calculations: 4 engineers times 60 lines per day equals 240 lines per day. 1200 lines divided by five days also equals 240. Let me know if you have any questions. Susan 1 Suggested Answers 1 The simplest way to combine numbers in mathematics is to add two quantities together. For example, two plus three equals five. Numbers can also be multiplied by each other. In multiplication, one quantity is added to itself a certain number of times. For example, two times Unit 12 three equals six. In other words, two added to itself three 1 Suggested Answers times is six. 1 Part of a whole are often expressed as fractions. A whole 2 Subtraction is a basic way to split numbers apart in is divided into a number of equal parts. Then, the mathematics. It involves simply removing one quantity quantity is expressed as a smaller number of those parts. from another quantity, so that the answer is the ¾ is fraction in which something occupies three parts of difference between the two. For example, five minus four total possible parts. A percentage is another way to three equals two. Division is also a way to split numbers express the same quantity. In this case, the quantity is into parts. If x is divided by y, x is separated into y the number of parts out of 100. 75% is the quantity of number of parts. For example, six over two equals three. something that occupies seventy-five parts of one hundred total possible parts. 2 1F 2T 3T Answer Key 9 Book 1 Answer Key 2 2 To convert a percentage into a fraction, 100 is always used as the initial denominator. The percentage amount is used as the numerator. For example, if the percentage is 40%, the fraction is 40 over 100. Then the fraction should be reduced to its lowest form. In this case, forty parts out of one hundred is proportionally the same as two parts out of five. Therefore, the final fraction equals to 2�5. 1F 2T 3T 3 1E 2D 3C 4A 5B 6F 4 1 decimal number 2 converted 3 fraction 4 percent 5 Suggested Answer If twelve out of fifteen is expressed as a fraction, it should be reduced to its lowest form: 4/5. If expressed as a percentage, it would show the number of parts out of 100 that it occupies: 80%. 6 1D 2C 7 1 wanted to 2 software update 3 out of 4 four-fifths 5 focus on 6 one hundred percent Words like “increase” and “rise” describe a positive change. When we say something decreases, or is in decline, we describe a negative change. “Fluctuate” is a way to indicate that something moves up and down periodically. And if something is steady, it remains about the same. 2 When the market changes, people hope to see desirable outcomes. This usually involves increasing sales. If labor and material costs decrease at the same time, then people usually make money in a particular market. These results often occur as technology improves and expands. 2 1A 2C 3 1H 2G 4 2B Unit 13 1 Suggested Answers 1 There are many ways to describe changes in a market. 10 Answer Key 4A 5B 6E 7D 8F If something is lower than it was, then it decreased. Someone might also say that it is in decline. 6 1F 2T 3T 7 1 new programs 2 fluctuated 3 increase 4 steady pace 5 you think 6 no doubt 8 Suggested Answer A: You wanted to see me? B: Yes. Our clients are asking about the new program release. A: We’re working on it. We already updated six out of eight components. B: That’s three-fourths done. What about the other two? A: We’re developing a whole new system display. It could take a while. B: I want you to focus on that. We’ll release the program as 9 soon as that’s done. A: So you want us to spend one hundred percent of our time on it? B: Yes. The other component can wait until a software update. Project: Software Update Update: We have finished 6 out of 8 items. That means the project is 75% complete. To complete the project as quickly as possible, we will spend 100% of our time on the new system display. We will spend all of our time on this. 3C 5 Suggested Answer 8 SuggestedAnswer 9 Suggested Answer 1A 3B A: How do the new programs do on the market? B: The demand for the income tax software has really fluctuated. A: Why do you think that is? B: It seems to increase drastically during tax season. A: What about the mobile app? B: We noticed the demand increased. It’s doing well. A: How do you think it will do in the future? B: I have no doubt that it will remain pretty steady. Suggested Answer Dear Mr. Billings, We have just released several new programs. The first software is a bill paying program. Sales are really increasing. I believe this is because improvements in the economy make people more comfortable with automatic payments. The other is a mobile app. It is not as unpredictable as we thought it would be. The sales are increasing steadily. Overall, the sales of our programs are expanding. Sincerely, Michelle Book 1 Answer Key What did the presenter do well? I liked that the presenter spoke clearly because everyone could hear her. How could the presenter improve? Next time, the presenter should use visual aids because she was talking lots of numbers which was quite confusing for the audience. Unit 14 1 Suggested Answers 1 2 2 1 3 When giving presentations, speakers must demonstrate confidence by standing up straight and making eye contact with the audience. They also must clearly guide audiences through ideas by signposting and summarizing. Instead of just talking, speakers can also use visual aids to help clarify or reinforce information. Unit 15 Handouts are a good visual aid that leave audience members with something to take away with them. 1 Suggested Answers Engineers work in a field that requires complex and 1 Software engineering students typically start with elaborate planning. They must be able to demonstrate foundation studies in mathematics, including calculus ideas clearly and convince others that projects are and linear algebra. They must also have a general worthwhile. Their arguments must be compelling and understanding of electronics. Even though they focus interesting. An engineer may have great ideas. But if he primarily on software, they must understand the or she has poor presentation skills, the projects may hardware it will be applied to. Therefore, software never be approved. engineering students typically take computer engineering B 2A 3D 1E 2B 3A 2 4C 5D 4 1 handout 2 review 3 note card 4 presentation 5 eye contact 5 Suggested Answer Note cards are a useful presentation tool, but presenters sometimes forget to look up and make eye contact with the audience while they are reading their note cards. 6 1T 2F 8 4 note cards 5 wrong with 6 make eye contact Area of study Foundation year 3 1 2 3 2 1 A bachelor’s degree 2 A circuit analysis 3 Suggested Answer Suggested Answer A: What do you think of my presentation? B: I was impressed with your ideas. But you need to work on your presentation skills. A: What do you mean? B: For one, the audience was confused by all the numbers you listed. A: I didn’t realize that. Should I use a visual aid next time? B: Yes, a handout would be great. And let’s work on using more signposting. A: Why? Was I being unclear? B: People didn’t know when you switched to a new topic. 9 2 3F 7 1 was impressed with 2 couldn’t hear you 3 project my voice Subjects covered 1 basic engineering principles, linear algebra, calculus Computer Engineering 2 computer architecture, general electronics 3 Upper-level software implementation of control systems, engineering courses complex programming D E C 4 5 6 F A B B computer engineering B linear algebra Software engineering students take foundation courses in mathematics, such as calculus and linear algebra, before they take upper-level courses. 4 1F 7 1 advanced courses 2 foundation 3 to take calculus 8 Suggested Answer Suggested Answer Presenter: Jill Steadman Please rate the presentation between 1 (low) and 5 (high): 3 courses as well. In upper-level courses, they typically learn about advanced programming and circuit analysis. In my country, there are many jobs in the software engineering field, but engineers almost always need a strong education. While there is no official requirement, about 80% of software engineers in my country have a bachelor’s degree or higher. Some engineers have not completed this education, but it is much easier to get a job with a degree. 2F 3T 3 should I take 4 computer engineering 6 computer architecture A: Let’s talk about next semester. B: Can I enroll in software programming courses yet? Answer Key 11 Book 1 Answer Key A: Not quite. You still have some foundation work to finish. B: Like what? A: First, you need to take some basic electronics courses. Then you can enroll in upper-level courses. B: I guess I’ll do that, then. What else should I take next semester? A: Let’s get you started on some mathematics courses. B: Yes, I think I’m ready for that. A: I’ll sign you up for linear algebra. 9 Suggested Answer Student: Ben Hampton Advisor: Jean Bukowski What courses did the student take already? The student completed the foundation courses Calculus and Computer Engineering last semester. What courses do you recommend for next semester? I recommend that students take Linear Algebra and Intro to Electronics. How will these courses help the student meet his or her long-term goals? These courses will help the student complete the foundation education and prepare him for more advanced programming courses. 12 Answer Key Audioscripts Unit 1 Unit 4 Student (М): Professor Wendell? I’m really interested in software engineering. But is it a good career choice? Instructor (W): I think so. You are a good leader. You’d enjoy programming-in-the-large. Student: I agree. I like working in groups. Instructor: You like to investigate problems, right? Student: Yes, I do. But software engineering seems like it could be hard. Instructor: It’s sometimes challenging when others evaluate your work. But if you are patient, it is very rewarding. Student: That sounds like something I can do. Engineer 1 (M): Hey, Greta. Have you used the computer in the conference room? Engineer 2 (W): No. Is there a problem with it? Engineer 1: Yeah. I think it’s overheating. Engineer 2: Oh, that’s not good. What’s it doing? Engineer 1: Well, the processor is working really slow. And the case feels unusually warm. Engineer 2: Does it make a lot of noise? Engineer 1: Now that you mention it, the fan did seem really loud. Engineer 2: It sounds like you’re right. If I were you, I’d replace the heat sink. Engineer 1: Yeah, it’s probably defective. I’d better give that a try. Unit 2 Engineer 1 (M): Hey, Grace. What are you working on? Engineer 2 (W): I’m still developing the home banking application. Engineer 1: Wait, didn’t you finish that already? Engineer 2: Well, sort of. I finished a version for laptops and desktops. Engineer 1: So what are you doing now? Engineer 2: Next, I’m going to create an application for tablets. Engineer 1: Oh, that’s a good idea. Lots of people carry tablets nowadays. Engineer 2: Right. That’s why this version needs to work well with a touchscreen. Unit 3 Representative (M): Thanks for calling Worldwide Comp Supply. How can I help you? Customer (W): Hi, I’m calling about order number 25841. Some of the order is incorrect. Representative: I’m sorry to hear that. What’s the problem? Customer: I ordered thirty-six optical mice. Thirty were regular, and six were wireless. Representative: I see that on your order information. How many were in the shipment? Customer: Well, I received all thirty-six mice. But none of them are wireless. Representative: Oh, no! We’ll get this fixed right away. Customer: This is a real hassle. I needed this equipment immediately. Representative: Again, I’m really sorry. I’ll throw in two more mice for free. Unit 5 Student 1 (M): What did you think of that assignment about early system software? Student 2 (W): That was a really hard assignment! Student 1: I thought so, too. I can’t believe people used to enter everything manually. Student 2: I know what you mean. I’m ready to study modern operating systems. Student 1: I agree. They’re so much easier to use. Student 2: Are you ready for the quiz tomorrow? Student 1: I need to review that chapter again. Student 2: Don’t forget to study about device drivers. Student 1: I’m not too worried about that. Unit 6 Engineer (W): Well, Mr. Clay. I removed the spyware from your company’s system. Manager (M): Oh, thank you! Our systems contain a lot of confidential information. Engineer: Yes, I can see that. If you don’t update your security software, you could really be in trouble. Manager: Really. You think this will happen again? Engineer: Whoever wanted your information is likely to keep trying. Manager: I guess we’d better update the company’s antivirus software, then. Engineer: Definitely. And I recommend a better firewall. Manager: What does that do? Engineer: That makes it harder for unauthorized users to access the company’s network. Answer Key 13 Audioscripts Unit 7 Student 1 (M): Can you help me with something? Student 2 (W): Sure. What is it? Student 1: I’m confused about the difference between linkers and compilers. Student 2: Okay. Well, a linker connects a program to information it needs from other programs. Student 1: Wait, I thought an interpreter did that. Student 2: No. An interpreter just reads the information so the program can run. Student 1: Okay. So then, a compiler is what decodes program instructions? Student 2: Exactly. It translates information from different programming languages. Student 1: I get it now. Thanks. Unit 8 Engineer 1 (M): Did you see the memo from the CEO? Engineer 2 (W): Do you mean the one about the accounting software? Engineer 1: Yeah. They want a whole new program for the office suite. We’re supposed to develop it by the end of the month. Engineer 2: I think that’s a good idea. A lot of our customers probably use accounting anyway. Engineer 1: Yeah, but I’m worried. What will that mean for the other programs in our office suite? Engineer 2: What do you mean? Engineer 1: Well, our word processor needs to be updated. I’m afraid that a new program will take away from that. Engineer 2: I see what you mean, but I think it’ll be fine. Another team is scheduled to complete that update this week. Unit 9 Owner (W): Owen, where are we on software developments? Engineer (M): We’re working on a lot of new things, Ms. Thompson. Owner: Last I heard, you were finishing a mobile app for cost analysis. Engineer: We finished that. Now, we’re working on a program for route planning. Owner: Can you tell me more about that? Engineer: We want to adapt a satellite navigation program. But ours will be much smaller. Owner: Why is that? 14 Answer Key Engineer: It needs to be compatible with digital assistants. Unit 10 Representative (W): Thanks for calling Mailbag Support. How can I help you? Customer (M): Hi, I just installed the new Mailbag Deluxe. But I can’t open it. Representative: I’m sorry to hear you’re having trouble. Do you see the icon on your desktop? Customer: Yes, it’s there. But nothing happens when I click it. Representative: Did you right-click the icon? Customer: No. Should I try that? Representative: Yeah, go ahead and right-click it instead. Customer: Let’s see. Oh, I see. And now I click “Open Mailbag”? Representative: That’s right. Unit 11 Engineer 1 (M): What’s the status on the new program? Engineer 2 (W): We’re right on schedule. Engineer 1: Great! Will you finish it by next Friday? Engineer 2: That’s ten days away, right? And we need about fifteen hundred more lines of code. Engineer 1: Fifteen hundred divided by ten is one hundred and fifty lines per day. Can you do it? Engineer 2: I think so. We have three engineers working on it. Engineer 1: So you need each engineer to do fifty lines per day. Engineer 2: Fifty? Oh, of course. Fifty lines times three engineers equals one hundred fifty. We can handle that. Unit 12 Engineer (M): Hi, Mr. Lennox. You wanted to see me? Manager (W): Yes, Jenna. Our clients are asking about the new software update. Engineer: We’re working on it. We already fixed twelve out of the fifteen problems. Manager: Well, that’s four-fifths done. What about the other three problems? Engineer: They’re tricky. The sudden shut-downs are the biggest issue. Manager: I want you to focus on fixing that. We’ll release the Audioscripts update as soon as that’s done. Engineer: So you want us to spend one hundred percent of our time on it? Manager: Yes. The other fixes can wait until the next update. Unit 13 Engineer 1 (M): Hey, Mary. How did the new programs do on the market? Engineer 2 (W): The demand for the route planning program has really fluctuated. Engineer 1: That’s strange. Why do you think that is? Engineer 2: It seems to increase in the summer. That’s when people travel the most. Engineer 1: Oh, that makes sense. What about the budget mobile app? Engineer 2: That did better. The demand increased at a steady pace. Engineer 1: How do you think it will do in the future? Engineer 2: I have no doubt it will do well. Unit 14 Engineer (W): What do you think of my presentation? Manager (M): I was impressed with your ideas. But you need to work on your presentation skills. Engineer: What do you mean? Manager: For one, the audience couldn’t hear you towards the back. Engineer: Oh, I didn’t realize that. So I need to project my voice next time. Manager: Exactly. And let’s work on using fewer note cards next time. Engineer: Why? What’s wrong with them? Manager: You looked at them too much. You need to make eye contact with your audience. Engineer: I see. I guess I should practice before my next presentation. Unit 15 Advisor (W): So, Ben. Let’s talk about next semester. Student (M): Okay. Can I enroll in advanced courses yet? Advisor: Well, not quite. You still have some foundation work to finish. Student: Really? Like what? Advisor: First, you need to take calculus. Then you can enroll in upper-level courses. Student: I guess I’ll do that, then. What else should I take next semester? Advisor: Let’s get you started on some basic computer engineering courses. Student: Yes, I think I’m ready for that. Advisor (W): I’ll sign you up for computer architecture. Answer Key 15 Book 2 Answer Key Unit 1 1 Suggested Answers 2 3 4 5 6 7 Qualifications: He has a PhD from Gelman Technical Institute. Do you plan to hire this applicant? Why or why not? I do not plan to hire this applicant. Even though he is goal-oriented, he has not demonstrated any special abilities or innovative thinking. Applicant: Alice DeWitt Qualifications: She is still in college, but she helped develop “Stones of Fury” video game. Do you plan to hire this applicant? Why or why not? I plan to hire this applicant because she has demonstrated strong commitment and innovation. 1 Anyone who works alongside other people must have good interpersonal skills and be a team player. Good communication skills are essential. He or she must have a commitment to the group, and should be dedicated to the overall success of the work. Coworkers appreciate someone who can focus and maintain a goal-oriented attitude that benefits the entire organization. 2 Software engineering is a very technical field, and engineers must have advanced technical expertise in order to be successful. They must have the ability to think Unit 2 critically about something and solve problems in a logical 1 Suggested Answers manner. However, they are also responsible for creating 1 The first step in problem solving is problem identification. programs and solutions that have never been seen or This is a process that determines why software might not tried. That means they must also have the ability to think be working. Once the cause of a problem is identified, it is outside the box and develop innovative programs. easier to find an appropriate solution for the problem. One approach is to complete an analysis of the problem or of 1 A 2C 3A the whole project. This analysis should try to account for any factors that could be causing the problem. Completing 1 H 3F 5E 7C an analysis involves careful observation and patience. 2 A 4B 6G 8D Another way of identifying the problem is to check standard procedures for common problems. 1 A goal-oriented B innovative 2 Problem solving begins with problem identification. This is 2 A commitment B expertise usually done through an analysis of the problem. Once the problem is identified, a solution can be found. A Suggested Answer solution may be simple, or it may involve a synthesis of Someone who thinks of unusual ideas can be described as multiple actions. A solution should be considered carefully innovative, and as someone who thinks outside the box. before it is applied. Once the solution is applied it is important to make sure that the problem has been solved 1 T 2F 3F completely. If it has not, another iteration of problem solving begins. This involves further analysis of the problem and application of new solutions. 1 technical expertise 4 think outside the box 2 still in college 5 interview with him 3 helped develop 6 curious, innovative person 2 1 F 2F 3T 8 Suggested Answer A: How do the job applications look? B: There are a couple of good applicants. I like this one: George Nelson. A: What does his résumé say? B: He recently got a PhD from Gelman Technical Institute. 3 1 C 2 D 4 1 A redefine 2 A solution 3 A iteration 3A 4F B address B analysis B procedure 5 Suggested Answer The first step in problem solving is problem identification. This begins with a complete analysis of the problem and its possible causes. A: That’s a tough school. He must be very goal-oriented. Who else is there? B: I like Alice DeWitt, too. She’s still in college, but she helped develop the video game “Stones of Fury”. 6 1A 2A A: That was a really elaborate project. Those engineers really had to have serious commitment. 7 1 project going 4 common solutions B: Should I set up an interview with her? A: 2 lot of problems 5 will you do Yes. Experience is nice. But I’d rather go with a 3 a quick analysis 6 more detailed dedicated, innovative person. 9 Suggested Answer 8 Suggested Answer Applicant: George Nelson A: How is your project going? 16 Answer Key 5E 6B Book 2 Answer Key 2 it’s extensive 5 don’t quite get B: It’s going well, but I’m having trouble solving a couple 3 cannot be counted 6 temperature of problems. A: What solutions have you tried? B: I’ve been running some standard procedures, but none of 8 Suggested Answer them have worked. A: Are you ready for the accounting test? A: Have you tried anything else? B: I don’t know. I still mix up some of the concepts. B: I also did a quick analysis of all the software code and A: So do I. Do you remember the difference between input I’m completing a more detailed analysis of all the code. and generation? A: That’s a good plan. B: I think so. Input is added to a system, right? A: That sounds right. On the other hand, generation is 9 Suggested Answer what the system produces. 1. Identify the problem. A good way to do this is to complete B: So input already exists, while generation is created. an analysis of the project and think about possible causes of A: I still don’t get where generation comes from. the problem. A: It’s related to consumption. Think about the smoke from a 2. Think of a solution. It’s a good idea to think of a few fire. Consumption is the process of burning wood, and possible solutions for the problem. smoke is the generation from that process. 3. Apply the solution. A good way to do this is to try a B: That makes sense. synthesis of multiple solutions. 4. Complete an analysis to ensure that the problem has been 9 Suggested Answer fully resolved. 1. Intensive Quantity Temperature. This a good example of Unit 3 1 Suggested Answers this concept because temperature is a quantity that can be measured, but it cannot be counted. Smoke. This is a good example of 1 Engineers use principles of accounting to monitor changes 2. Generation this concept because consumption is in quantities. Since engineers are responsible for the process of burning wood and smoke developing various solutions and tools, they must be able is the generation from that process. to determine whether a process is functioning. If something is not working as expected, an engineer must Unit 4 be able to determine why. Accounting practices provide a standard way to measure changes so that further 1 Suggested Answers 1 Requirements engineering is the practice of creating and adjustments and formulations are accurate. documenting specifications for software and other 2 Consumption and generation are two parts of the same applications. Requirements engineers must define the process. Consumption occurs when an amount of purpose of software they are creating. Generally, this something is used or destroyed. This usually occurs in means deciding if software will be customer-driven or order to power or drive something else. The use of the market-driven. Once this has been decided, engineers resource is then converted into a product, which is must describe the specifications of the software. They generation. This is usually the desired outcome of record these specifications in requirements documents. consumption. Some resources may be lost or wasted in These documents are organized in a way that makes the process, so consumption does not always translate sense for the specific software being described. Before directly into generation. the software is made, the documents are given validation and verification. This ensures that all data in the 2 1F 2F 3T document is accurate and has been communicated accurately. 3 1H 2E 3B 4F 5D 6A 7C 8G 2 Software specifications are organized into a requirements document. Depending on the software, the specifications 4 1 A closed system B open system 2 A generation B consumption are organized differently. For some software, the specifications are organized by mode. This describes the 5 Suggested Answer way the software will function in different settings. Some Open systems allow mass to pass in and out of the system, while documents organize the specifications by user class. This closed systems always maintain constant mass. describes how the software will operate for each type of user. Documents organized by response describe how 6 1 A 2 D the software will operate in terms of the information that it will give to users. Requirements documents can be 7 1 get backwards 4 measure them organized by any functional hierarchy Answer Key 17 Book 2 Answer Key 2 1 3 C 2 1 A 2 C D 3 3 B 4 H 4 1 objects 2 user class A 5 D 6 E 3 functional hierarchy 4 mode major components of a software system. Viewing software in this way allows engineers and programmers to understand how software works and to identify problems with software. Software architecture works by viewing components of software separately from each other according to function. Once the components have been isolated, they can be studied more closely. 2 There are a few ways that software is viewed in software architecture. In a conceptual view, software is broken down into its major design elements. This allows the interactions between those elements to be examined closely. When software is viewed in deployment view, it is examined in terms of its relationship to physical nodes. When software is viewed in process view, the software is portrayed in terms of the tasks the system must perform. 7 F 8 G 5 response 5 Suggested Answer Engineers find errors in requirements documents during the validation and verification processes. 6 1T 7 1 2 3 2T 3F on the requirements 4 Some of the specifications the validation 5 updating the data What happened 6 end of the week 8 Suggested Answer A: Can you give me an update on the new project? B: It’s going slowly. It was good at first, but we found some major problems when we did the verification. A: What were the problems? B: All of the data was correct, but it was organized in a way that didn’t make much sense. A: Will we be able to fix the problem? B: Yes. Instead of organizing it by mode, we’ve decided to switch to user class. A: How long will that take? B: We should have it done by the end of the month. A: Oh, good. I was worried we couldn’t make the client’s deadline. 9 Suggested Answer From the desk of: Allison Baxter 2 1A 2C 3D 3 1C 2A 3D 4 5 1 Software architecture 2 idiom 3 module 4 application framework 5 programming plan 6 design pattern Suggested Answer Sheryl will present on the progress of the application framework for new accounting software. She will also talk about plans for developing the deployment view of the software. 6 1F 7 1 your presentation 2 describe software architecture 3 another client 8 Suggested Answer Hi Greg, Here is an update on the library catalog project. Current stage: We are currently plugging new data into the requirements document. Problems encountered: During validation, we discovered that our data was not organized well. Next steps: When we finish updating the data, we will complete validation again to ensure everything is correct this time. Let me know if you have any questions. –Allison Unit 5 1 Suggested Answers 1 Software architecture is the practice of viewing software systems in terms of their major components. It also 9 involves characterizing the interactions between the 18 Answer Key 4B 2F 3T 4 application framework 5 put something 6 an implementation view A: I really enjoyed your presentation last week on the software architecture of our current project. B: That’s good to hear. It’s hard to describe process view to clients, but I did my best. A: You did well. Would you be interested in putting together another client presentation? B: I’d be happy to. A: I need to give some other clients an overview of the progress we’ve made on the design patterns for their project. B: If you send me the information for the project, I can do it. A: I’ll have all the data sent to you this afternoon. B: When will the presentation be? A: The presentation is next week, but I need you to finish your notes by Friday so I can look over them first. B: I’ll send them to you as soon as they are ready. Suggested Answer Linda will present on the benefits of developing the Book 2 Answer Key conceptual view before the deployment view. Terry will present on the changes to the process view of the word processing software. Alan will present on the development of idioms and design patterns for use in accounting software projects. type. A: I agree. But I don’t think we need one that complicated. Our data will be more ordered than that. B: What were you thinking then? A: I think a repository might be good. That would be nice and simple. B: I really don’t like that idea. We also need the system to do some pretty complicated functions. I don’t think a repository will work well for that. A: You’re right. We need something that lends itself to functions. B: What about a layered plan? A: I think that could work. Unit 6 1 Suggested Answers 1 2 Domain-specific software architecture is the practice of using pre-established patterns and systems to create plans for new software. Software engineers can consider what kind of data they have and what kind of software they are creating to select a pre-established system for their software. The system defines the basics of how the 9 Suggested Answer software will be structured. After that, the engineer only Hi Ken, needs to link the software to his or her specific data. A I looked over your ideas for the new project. You suggested few types of pre-established software structures exist for using an abstract data type architectural style. I don’t think engineers to choose from. Each type is suited to different this is a good idea because it is much more complicated than kinds of data structures or software functions. our project requires. There are a few types of architectural structures for Instead, why don’t you use the repository architectural style? designing software. An abstract data type designs a It’s better because it is a simpler system. Or you could use system that matches the structure of the data being the layered architectural style. The advantage of that is that processed. In this system, components are designed to it’s still relatively simple but it can perform many functions. maintain themselves. An implicit invocation relies on Let me know what you decide. computations that are provoked by internal events rather Sylvia than user input. A layered structure is organized into seven layers. These layers are organized in ascending functionality. The most basic functions are on the bottom layers while the higher ordered operations are at the top. Unit 7 2 1F 3 1 E 2 A 2T 3 F 4 B 1 Suggested Answers 3F 5 D 6 C 4 1 control structure 3 system model 2 component 4 connector 5 DSSA 5 Suggested Answer A software engineer decides to use an established structure according to the data and necessary functions of his or her software. He or she uses the framework of the structure as a basis and changes the details according to the specifics of the project. 6 1D 7 1 database software 2 architectural structure 3 about a repository 2A 4 our data will 5 were you thinking 6 pipes and filters i ht 8 Suggested Answer A: Do you have any ideas about how we should start with this 2 database software? B: Since we’re going to be bringing in a lot of data from outside sources, I thought about using an abstract data 3 1 A call graph shows an abstraction of a software system. This abstraction is a basic system structure. It depicts a system in terms of its modularity. A call graph shows modules as well as the connections between modules. The connections are described in terms of their coupling and cohesion. Engineers use call graphs to design a system in the most general terms possible. They can then examine the system and correct errors before the system becomes very complex 2 Call graphs provide programmers with a basic plan of how a system will work. Because a call graph does not as many details or as much data as a completed system, it is easier to edit. Problems that arise in a call graph can be changed relatively easily. Call graphs are less susceptible to wicked problems. These are problems that have multiple causes and are very difficult to solve. A call graph’s simplicity makes it easier to correct and perfect. Once a call graph is perfected, it provides a strong basis for a software design. 1B 2D 3A 1 wicked problem 2 call graph 3 information hiding 4 stopping rule 5 simplify Answer Key 19 Book 2 Answer Key 4 1 A Coupling 2 A intra-modular attributes 3 A system structure 4 A Complexity B Cohesion B Inter-modular attributes B abstraction B Modularity subfunctions to support these user functions. Typically, neither process is used purely by itself. 2 Engineers need to identify and manage problems that come up in their software. One way engineers can do this is by decomposing programs. This means that they split the higher-level functions of the software into smaller subfunctions. This allows engineers to study the subfunctions closely and identify problems. It also helps to split problems up into more manageable sizes. The process of decomposing software to identify problems is known as functional decomposition. 5 Suggested Answer Programmers can avoid wicked problems in their designs by using call graphs. These plans allow programmers to eliminate problems before the software becomes too complex. 6 1F 2F 3T 7 1 still confused 2 cleared up 3 make a call graph 8 9 4 add the details 5 abstraction 6 before the software Suggested Answer A: Is there anything you need help with? B: Yes, actually. I’m still confused about some parts of our projects. A: Let’s see if we can get that cleared up then. What is confusing you? B: I don’t really understand the difference between cohesion and coupling. A: Cohesion describes the measure of interactions between modules. Does that help? B: Yes, I’m still not sure what coupling is. A: Coupling tells us how strong those interactions are. B: I see. Why do we need to define those in the system plan? Won’t the data set those limits for us? A: That’s part of creating a strong design. Putting cohesion and coupling into our call graphs allows us to eliminate any problems with the software before they arise. Suggested Answer Design Benefits call graph provides a plan of what a final product will look like abstraction provides a broad plan before details have been decided cohesion and allows elimination of problems before coupling they arise Unit 8 2 D 1 3 1A 2A 2 B 3A 4B 3A 5A 4 1 A top-down design B bottom-up design 2 A idealistic B primitive 3 A subfunction B Philosophy 5 Suggested Answer Students will learn the philosophy behind design methods. They will also learn about problem solving in software design. 6 1T 2F 3F 7 1 a bottom-up design 2 managing problems 3 to eliminate them 4 what about top-down 5 it’s easier to 6 by decomposing 8 Suggested Answer A: Can anyone tell me about the limitations of a top-down design? B: Yes. With a top-down design the engineer starts with the higher function. This means they’re more likely to have complicated problems. A: Can you tell me about some of the benefits of a top-down design? B: A top-down design allows for functional decomposition when problems come up. A: And what about bottom-up designs? B: It’s easier to avoid problems with a bottom-up design than with a top-down design. A: How so? B: Since the engineer is building the most basic elements of the software first, they’re less likely to make mistakes. A: That’s correct. It looks like you’ve been keeping up on the reading. 1 Suggested Answers 1 There are two basic types of design methods. The first is bottom-up design. In a bottom-up design, an engineer begins by creating the most primitive subfunctions of the 9 Suggested Answer design. These subfunctions are then connected to each Top-Down other and built upon. Eventually, the engineer will create Pros Cons higher level functions until he or she reaches the main allows engineer to define user - more likely to have user functions. The other type is top-down design. In this functions first complicated problems system, an engineer begins by defining the user functions allows for functional decomposition more difficult to correct of the software. From there, the engineer creates the 20 Answer Key Book 2 Answer Key Bottom-Up Pros - easier to avoid problems 8 Suggested Answer mistakes Cons - does not allow for functional decomposition until the end of the process - engineer must begin at the most basic level Unit 9 1 Suggested Answers 1 2 There are a few ways that software engineers visualize software structures. Software engineers design systems according to data flow. This means that they examine the way data moves through a system. Software engineers can represent the data flow of a system in charts called DFDs. These charts map the movement of data from module to module in a system. They allow software engineers to optimize data flow in a system. Software engineers also use structure charts and structure diagrams. These charts and diagrams use schematic logic to represent the objects and functions in a system. There are three distinct phases in Jackson System Development, or JSD. The first stage is the modeling stage. At this stage, engineers consider the real-world problems that their software needs to solve. They describe these problems carefully and consider the best means of operation for their software. The second stage is the network stage. In this stage a system is represented graphically. Engineers make note of the modules of a system and the connections between modules. In this way, the system as shown as a network of communication processes. The final stage is the implementation stage. In this stage the system is transformed from a network of processes to a complete working design. 2 1B 2C 3A 3 1C 2B 3E 4D 5A 4 1 structure chart 2 JSD 3 schematic logic 4 structure diagram 5 Data flow design 6 JSP Data Flow Diagrams help engineers visualize how their software will work. 2T 3F 7 1 working in JSP 2 For this project 9 Suggested Answer 1. Begin with the modeling stage. This involves assessing what functions the software will need to perform. Try to imagine a system which is capable of managing those functions. 2. Continue to the networking stage. In this stage, try to map out the objects in the system and define the interactions between them. Express the elements of the system with schematic logic. 3. Finally, execute the implementation stage. This is when you use your system map to create a functioning system. Unit 10 1 Suggested Answers 1 7 DFD 5 Suggested Answer 6 1F A: Do you mind if I ask you a few questions about the project you’re working on? B: Go ahead. A: I’m interested in different software design methods. I was just wondering if you were working in JSP. B: No, but you’re close. For this project I’m using a data flow diagram. A: What made you decide to plan it that way? B: I prefer it because I want the software to run fast, so I need to make sure that the data is moving in the most efficient way possible. A: How is the project going? B: I’m still looking for ways to optimize some of the processes. A: Let me know if I can help. I’d love to be involved. B: OK. I will. 3 easier to gauge 5 the network stage 4 What stage 6 The data flow 2 Object-oriented design is the practice of structuring designs according to the objects within them. Engineers focus on the nodes and modules of a system and the relationships between those objects. They also focus on the attributes or properties of objects in a system. To create designs in objectoriented design, engineers make diagrams that map different aspects of the objects in a system. Each diagram depicts the same system in different terms. Engineers can use these diagrams to plan and optimize their designs. The Fusion method and the Booch method are two popular procedures of objectoriented design. There are many types of diagrams used in objectoriented design. Each type of diagram depicts a different aspect of a system or of the objects in a system. A collaboration diagram shows each object in a system in relation to a particular interaction. A sequence diagram gives the time ordering of events in an interaction. A class diagram models the relationships between objects in a system. This type of diagram also depicts the decomposition of a Answer Key 21 Book 2 Answer Key outcome of a fault. Engineers can find errors in code by detecting faults. They do this with a fault detection model. 2 There are a few models of fault detection. One is the demonstration model. This model ensures that software satisfies its specified purpose. This model is generally used at the early stages of development. Another model is destruction model. This model detects implementation failures in new software. Another model is the evaluation model. This model detects faults in all areas of software. These areas include design, implementation, and requirements. Another model is the prevention model. This model attempts to prevent faults in all areas of software before they occur. system. A state diagram depicts the dynamic behavior of single objects in a system. 2 1T 2F 3F 3 1E 2B 3D 4C 4 1 property 2 state 5F 6A 3 relationship 4 OMTs 7G 8H 5 attribute 6 object-oriented 5 Suggested Answer The Booch method is a popular model of object-oriented design which uses its own modeling language to describe objects in a system. The Fusion method is another popular model of object-oriented design. 61A 2 1F 2C 7 1 create some diagrams 2 Sounds interesting 3 an interaction diagram 4 mapping the object interactions 5 Can you send me 6 end of the month 8 Suggested Answer A: Do you want to speak to me? B: I have a project for you. I need you to create some diagrams for the accounting software. A: What kind of diagrams do you need? B: We’ll need a state diagram, a sequence diagram, and a collaboration diagram. A: Have the engineers finished defining all of the object functions yet? B: No, they haven’t. This means that you’ll have to work on the sequence diagram last. In the meantime, you can get started on the other two diagrams. These diagrams need to be done in the next two weeks. We’re going to use them in a client presentation. A: So they need to look really professional, right? B: Right. 9 Suggested Answer 1. class diagram 2. state diagram depicts the decomposition of a system shows the dynamic behavior of single objects 3. sequence diagram shows time ordering of events in an interaction 4. collaboration depicts objects in relation to an diagram interaction Unit 11 1 Suggested Answers 2T 3 1 expected 2 error 4 3F 3 prevention model 4 evaluation model 1 A fault 2 A Fault prevention 3 A compare 4 A demonstration model 5 test criteria 6 oracle B failure B Fault detection B satisfy B destruction model 4 Suggested Answer The company uses oracles to compare test results and find faults. They also use different test models to detect and prevent faults. 5 1A 2D 6 1 on the testing 2 looking over 3 few failures 4 the destruction model 5 Use an oracle 6 run some more 7 Suggested Answer A: I need an update on the testing for the latest project. B: It looks like the software didn’t do very well. We detected a lot of faults. A: What testing model did you use? B: For this test we used the prevention model. A: Use an oracle to determine where the failures are coming from. Then have a team of engineers fix them. B: I will do that. We will probably run some more tests while we do that. A: That’s a good idea. I think you’re going to find more failures when you look at other models. B: What testing model should we use? A: I’d like to see the results from a demonstration model. 1 Software failures occur because of human error. When an engineer enters something into a computer incorrectly, 8 Suggested Answer this is called an error. In software engineering, errors Project: TX907 usually take place in software code. When a computer Tests completed: prevention model testing tries to execute code that is incorrect, a fault occurs. This Results: The software fulfills its intended purpose, but small fault often creates a failure. A failure is the detectable faults were found in the primitive code. 22 Answer Key Book 2 Answer Key Recommendation: Before continuing the project, we need to use an oracle and address the errors in the code. Tests to Complete: demonstration model testing Unit 12 A: Maybe you should run some scenario-based evaluations also. B: That’s a good idea. 9 Suggested Answer Test Method 1 Suggested Answers Advantages Disadvantages 1 2 3 4 5 6 There are many different types of software testing. black-box testing uses pre-set test may not be best for Software testing is divided between dynamic and static criteria all types of software analysis. In dynamic analysis, testing is conducted while static analysis tests unexecuted may not find certain a program is being executed. This type of testing program failures and errors includes scenario-based evaluation and fault-based Fagan inspection more likely to reveal may not be worth it testing. In static analysis, the code of a program is errors for small projects analyzed but the program is not executed. This type of Unit 13 testing includes stepwise abstraction, peer review, and Fagan inspection. Other types of testing are coverage- 1 Suggested Answers based testing and proof of correctness. 1 Test adequacy criteria are sets of properties or rules that 2 There are a few ways that software engineers work engineers should follow to ensure that the software tests together in the testing phases. One way is in Fagan they perform are sufficient. Test adequacy criteria cover inspection. This is a process in which engineers test all aspects of a software system. The properties consider software as a team. The tests they conduct are rigorous. the size of software and the percentage of the software It is up to the development team to complete the tests that is tested. The properties also consider how test sets and analyze the results. Another way that engineers work can and cannot be reused among similar software together is in peer review. This is a process in which one programs. engineer reads and edits code that another engineer 2 There are many different properties of test adequacy. The wrote. anticomposition property ensures that programs are not only tested in isolation but also in simulated environments. A 2C 3 A The complexity property reminds engineers that more 1 complex programs require more complex test sets. The 1C 2E 3A 4H 5D 6B 7G 8F monotonicity property asserts that traditional tests can 1 Fagan inspection 3 stepwise abstraction 2 static analysis 4 peer review always be performed on a software program. The applicability property states that sufficient test sets exist Suggested Answer for every program. The renaming property states that Engineers can decide what type of testing to use programs that differ only in inconsequential ways can be according to the function and size of the software. tested with the same test sets. 1T 2F 3F 2 1B 2C 3A 7 1 The white-box testing 2 making any changes 3 dynamic and static 8 Suggested Answer 4 ready for Fagan inspection 5 whole team working 6 do a peer review 3 1F 2B 3A 4E 5C 6D 7G 8H 4 1 A test adequacy criteria B complexity property A: How is the testing going on the accounting software? 2 A anticomposition property B antiextensionality property B: I have some bad news about that. The static analysis found a lot of faults. 5 Suggested Answer A: That’s not good. What are going to do about them? Some of the properties that employees should use are: B: We’re going to do some dynamic testing before we start complexity, renaming and monotonicity. making any changes. A: Are you using white-box testing or black-box testing? 6 1T 2F 3F B: For now we’re just doing white-box testing. We’ll use black-box testing later. 4 last project’s tests A: Try to get this taken care of quickly. I want this software7 1 good for a first try 2 the statement coverage property 5 write new tests ready for Fagan inspection by next month. 3 are some problems 6 whenever you can B: I understand. I’ve got the whole team working on the testing. Answer Key 23 Book 2 Answer Key 8 Suggested Answer 2B A: Your test sets were good for a first try. But I have some feedback for you. B: I’d love to hear it. A: You covered the applicability property really well, so that was great. B: I’m glad you noticed. I worked really hard on that. A: But there are some problems too. B: What were the problems? A: I noticed that you didn’t test the software in all possible environments. B: I was using the non-exhausting applicability property. A: I see. I’d advise you to be more thorough with your tests. Remember the antidecomposition property. B: So I should test program components together? A: Yes. 9 Suggested Answer All employees should observe the following guidelines in regards to test sets. Antidecomposition property – Make sure to test systems in multiple environments. Tests in isolated circumstances are not sufficient. Renaming property – Employees should be cautious with this property. Only a few systems are similar enough to fit the requirements for similar test sets. Complexity property – Remember that the more complex software is, the more complex the test sets for software should be. 4H 6D 4 1 insufficient 2 repair 8C 3 release 4 enhance 5 Suggested Answer The CEO wants engineers to perform adaptive maintenance to keep the company growing and competitive. 6 1T 2F 3F 7 1 a lot of maintenance 4 of corrective maintenance 2 not looking forward to 5 work on updating 3 First, we need to 6 run on new operating systems 8 Suggested Answer A: It looks like we’re going to be busy with the maintenance on that accounting software. B: I’m really not looking forward to all of that work. A: I think if we make a plan, we can save ourselves a lot of time. B: First, we need to do some preventive maintenance. A: That way, the other editing we need to do will be easier. B: Exactly. Next we need to work on fixing all of the faults in the software. A: So we need to do some perfective maintenance? B: Yes. We also need to make changes to account for all of the system upgrades. A: For that we can do adaptive maintenance. Unit 14 1 Suggested Answers 1 Software maintenance is the process of updating existing software. Software can be updated to fix problems or to meet new technical specifications. Engineers can enhance software features. They can also adapt it to new hardware or software. This is an important process because it prevents engineers from having to constantly write new software programs. Software maintenance is also done as a program that is being written. This is maintenance that makes the software easier to edit later. 2 There are a few kinds of software maintenance. Adaptive maintenance is work that is done to make software adaptable to new technologies. These technologies could be new types of hardware or new operating systems. Perfective maintenance is performed to fix faults in software. Preventive maintenance is performed on the structure of a system. This maintenance improves the structure so that the software can be updated more easily. 2 1D 2B 3C 3 1G 3F 5A 24 Answer Key 9 Suggested Answer Hi Karen, I’m pleased with the new programs your team is developing. However, I want you to shift your focus to software maintenance for a few weeks. On the GrayWhite 9.7 software, we need adaptive maintenance. This is because our competitors released a similar program with newer, more advanced technology. We have to keep up. On the SP008 software, we need perfective maintenance. This is because people don’t find the software useful. It needs some major functional improvements. On the FANFARE II software, we need corrective maintenance. This is because there are several errors in the code. Arnold Unit 15 1 Suggested Answers 1 7E There are a few ways that legacy systems are updated. Some legacy systems are updated so that they are compatible with new hardware or software. Some are updated to remove faults and errors from Book 2 Answer Key the program. Others are updated with revamped user interfaces. Engineers perform these updates by changing the code and structures of a legacy system. Engineers perform reengineering, renovation, and restructuring on existing systems. Redocumentation and design recovery are forms of software maintenance. Redocumentation creates a new version of an existing program that exists at the same level of abstraction. This means that the new program may have new features, but the structure of the program is essentially the same. Design recovery creates a new version of a program that is better organized than the original program. Though both programs perform the same function, the new program has a structure that is more organized and easier to edit. 2 2 1T 3 1 Design recovery 2 legacy system 3 Redocumentation 4 Functional equivalence 5 web-based 6 Reverse engineering 7 modernize 4 1 A Revamping 2 A renovation B Reengineering B Restructuring 2F on corrections. 3F 5 Suggested Answer Restructuring creates programs that are functionally equivalent to other programs. These programs can be edited and updated easily. 6 1B 2C 7 1 reverse engineering 2 do some redocumentation 3 code is too unstructured 4 have to edit 5 work to modernize 6 revamp the user interface 8 Suggested Answer A: What do you think about the reverse engineering on the database software? B: I’ve been thinking about it. We’re definitely going to have to do some reengineering. A: Really? Won’t that take a long time? B: It will, but the software is too complex to edit right now. A: Do you think we’ll have to edit the software after reengineering? B: Definitely. It’s going to take a lot of work to revamp this software. 9 Suggested Answer Software ID: X920 Maintenance needed: The user interface needs to be revamped. Also, parts of the program need to be restructured. We are performing this maintenance because some parts of the code have errors and the user interface is outdated. Current Progress: Revamping of the user interface is underway. Engineers are identifying errors and working Answer Key 25 Audioscripts Unit 1 Owner (M): How do the job applications look? Manager (W): There are a couple of good applicants. I like this one: Paula Gardner. Owner: Oh yeah? What does her résumé say? Manager: Let’s see. She has a degree from Lord Technical Institute. And she worked for several high-profile firms. Owner: So she has strong technical expertise. What else is there? Manager: I like Henry Pacheco, too. But he’s still in college. Owner: That might be okay. What’s his experience like? Manager: He helped develop the X-99 traffic analysis software. Owner: Really? That was a fascinating project. Those engineers really had to think outside the box. Manager: Yeah, that’s what I thought. Should I set up an interview with him? Owner: Definitely. Experience is nice. But I’d rather go with a curious, innovative person. Manager: Okay, I’ll call Henry right away. Unit 2 Engineer 1 (M): Hey. How is your project going? Engineer 2 (W): Not very well. I’m still having a lot of problems when I try to run the software. Engineer 1: Really? What have you done to fix it? Engineer 2: I did a quick analysis of the code. Engineer 1: Have you tried anything else? Engineer 2: Yeah, I ran some standard debugging procedures. Then I tried applying some common solutions. Engineer 1: Huh. What will you do next? Engineer 2: Well, I just started a more detailed analysis of all the code. Engineer 1: That’s a good way to start. Engineer 2: My two earlier changes helped in different ways. If this doesn’t work, I might try a synthesis of both iterations. Engineer 1: That’s a good plan. It sounds like you’re addressing the problem from all angles. Engineer 2: If I keep looking, I’m bound to find the solution soon. Unit 3 Student 1 (W): Are you ready for the accounting test this week? Student 2 (M): I don’t know. I still mix up some of the concepts. Student 1: Yeah, so do I. Do you remember the difference between an open system and a closed system? Student 2: I think so. An open system allows mass to move in and out, right? Student 1: Let me make sure. Yes, that’s right. 26 Answer Key Student 2: The ones that always confuse me are the extensive and intensive quantities. Student 1: Those are easy to get backwards. Student 2: So let me see if I can remember this. If you can count something, it’s extensive. Student 1: That sounds right. On the other hand, intensive quantities cannot be counted. Student 2: Right, but you can measure them. Student 1: I still don’t quite get how that works. Student 2: Think about temperature. You can’t count it. But you can still monitor its changes. Student 1: Okay, that makes sense. Unit 4 Engineer 1 (M): Can you give me an update on the requirements for the library catalog application? Engineer 2 (W): It’s going slowly. It was good at first, but we found some major problems when we did the validation. Engineer 1: I don’t like the sound of that. What happened? Engineer 2: Some of the specifications were based on old data. The requirements didn’t include the library’s new DVD catalog. Engineer 1: Oh, that’s right. Originally, they only included books. Will we be able to fix the problem? Engineer 2: We’re updating the data now. Then we’ll just plug it into the existing requirements document. Engineer 1: How long will that take? Engineer 2: We should have it done by the end of the week. Engineer 1: Oh, good. I’m really glad to hear it. I was worried that we wouldn’t make the client’s deadline. Engineer 2: I don’t think that’ll be a problem. We’ll keep you updated. Unit 5 Manager (M): Come in, Evelyn. Please have a seat. Engineer (W): Is there a problem? Manager: No. Actually, quite the opposite. I really enjoyed your presentation last week on the design pattern for our current project. Engineer: Really? Thank you. It’s hard to describe software architecture to clients, but I did my best. Manager: You did a great job. Would you be interested in putting together another client presentation? Engineer: Sure. I’d be happy to. Manager: Great. I need to give a presentation to some other clients. It’s an overview of our progress on the application framework. Engineer: Sure. Just send me the information. I’m sure I can put something together. Manager: Great. We already have an implementation view. I’ll send it to you this afternoon. Engineer: When will the presentation be? Audioscripts Manager: The presentation is next week. Can you finish your notes by Friday? I’d like to look over them. Engineer: No problem. I’ll send them to you as soon as they are ready. Unit 6 Engineer 1 (M): We need to start on this database software. So you have any ideas? Engineer 2 (W): Well, first, we need to decide on an architectural structure. Engineer 1: I agree. But I’m not sure which one we should use. Engineer 2: Hmm. We’re going to bring in a lot of data from outside sources. Maybe we should think about a repository. Engineer 1: I thought about that. But I don’t think our data will work with a repository system. Engineer 2: Okay. What were you thinking then? Engineer 1: I think pipes and filters might work better. It has better mechanisms for ordering data. Engineer 2: I really don’t like that idea. Pipes-and-filters plans are more complicated than we need. Engineer 1: Really? I guess I don’t have much experience with them. Engineer 2: I do. And I think we can do this with a simpler plan. Engineer 1: What about an abstract data type? Engineer 2: That could work. We could just have to design components and connectors that match our data. Unit 7 Engineer (M): Is there anything you need help with? Intern (W): Actually there is. I’m still confused about a few things. Engineer: Let’s see if we can get that cleared up. What is confusing you? Intern: Why do we need to make a call graph before adding the details? Engineer: What do you mean? Intern: Wouldn’t it save time to add the details as we create the design? Engineer: No, you need to consider the purpose of an abstraction. Intern: An abstraction? Engineer: Yes. Creating a design without details lets us find problems early. That way we can fix them before the software is too complex. Does that make sense? Intern: Yes, I think I understand. So, the cohesion of different modules is clearer in an abstraction? Engineer: Exactly. Do you have any other questions? Intern: No, I think I get it now. Thanks. Unit 8 Instructor (M): Can anyone tell me about the limitations of a bottom-up design? Yes, Linda. Student (W): A bottom-up design has to be created from scratch. The designer has no previous function to work with. Instructor: Very good. Can you tell me about some of the benefits of a bottom-up design? Student: Um. I’m not sure. Instructor: What about in regards to managing problems in a design? Student: Oh, well, a bottom-up design is less likely to have problems. But, if it does, it’s more difficult to eliminate them. Instructor: Great. And what about top-down designs? Student: Well, top-down designs tend to have more problems. But it’s easier to eliminate them. Instructor: And how would one do that? Student: I’m not sure. Maybe by decomposing the software? Instructor: That’s correct. It looks like you’ve been keeping up on the reading. Unit 9 Intern (M): Excuse me. Do you mind if I ask you a few questions about your project? Engineer (W): Not at all. Go ahead. Intern: I’m interested in different software design methods. Are you working in JSP? Engineer: No, but you’re close. For this project, I’m using the JSD system. Intern: Oh, that’s interesting. What made you decide to plan it that way? Engineer: Well, I prefer the structured stages of the JSD system. It’s easier to gauge how far along you are with the project. Intern: That makes sense. What stage of the project are you in now? Engineer: Right now, I’m working on the network stage. But I’m having some problems. Intern: What kind of problems? Engineer: The data flow isn’t working like I hoped. I might have to go back to my DFDs before I continue. Intern: I see. Let me know if I can help. I’d love to be involved in this project. Engineer: Sounds good, thanks. Unit 10 Intern (M): Hi. Did you want to speak to me? Engineer (W): Yes. Please come in and have a seat. I have a project for you. Intern: That’s exciting. What is it? Engineer: I need you to create some diagrams. They’re for our new accounting software. Answer Key 27 Audioscripts Intern: Sounds interesting. I can definitely do that. What kind of diagrams do you need? Engineer: We’ll need a collaboration diagram, a class diagram, and an interaction diagram. Intern: Okay. Did the engineers finish mapping the object interactions yet? Engineer: No, so you’ll have to work on the interaction diagram last. In the meantime, you can get started on the collaboration diagram. Intern: Okay. Can you send me the interaction data when it’s available? Engineer: Of course. Now listen, these diagrams need to be done by the end of the month. They’re for a client. Intern: So they need to be especially clear, right? Engineer: Right. I’ll send you that data as soon as it’s ready. Unit 11 Manager (M): I need an update on the testing for the latest project. Engineer (W): I was just looking over the latest test results. Manager: What do they say? Engineer: It looks like the software did pretty well. Only a few failures were detected. Manager: What testing model did you use? Engineer: For this test we used the destruction model. Manager: Good. Use an oracle to determine where the failures are coming from. Then have an engineer fix them. Engineer: Okay. We will probably run some more tests while we do that. Manager: That’s a good idea. I think you’re going to find more faults when you look at other models. Engineer: Do you have a suggestion about what testing model we should use? Manager: I’d like to see the results from a prevention model test. But do the oracle comparison first. Engineer: Okay. I’ll bring you the results shortly. Unit 12 Owner (M): How is the testing going on the accounting software? Engineer (W): Actually, I have some bad news about that. The white-box testing we did found a lot of faults. Owner: That’s not good. What are you going to do? Engineer: We’re going to do some black-box testing before we start making any changes. Owner: Good. Are you using both dynamic and static analysis? Engineer: For now we’re just doing static analysis. Owner: Okay. Try to get this taken care of quickly. I want this software ready for Fagan inspection by next month. Engineer: I understand. I’ve got the whole team working on it. Owner: Maybe you should get another team leader to do a 28 Answer Key peer review. Engineer: That’s a good idea. I can have someone do stepwise abstraction on it. Owner: Yes, do that. I’ll check back with you in a week. Engineer: Okay. We should have a lot of the problems fixed by then. Unit 13 Engineer (M): Your test sets were good for a first try. But I have some feedback for you. Intern (W): Okay. I’d love to hear it. Engineer: You covered the statement coverage property really well, so that was great. Intern: I’m glad you noticed. I worked really hard on that. Engineer: But there are some problems too. Intern: Like what? Engineer: It seems like you relied too much on the last project’s tests. Intern: Well, I used the renaming property. Engineer: I see. I’d advise you to be careful about that. Remember the general multiple change property. Intern: So I should try to write new tests? Engineer: Yes, whenever you can. Even if programs are similar, they often need different tests. Intern: Oh, right. That’s the antiextensionality property, isn’t it? Engineer: Yes, that’s absolutely right. Just remember that next time, and you’ll be fine. Intern: I will, thanks. Unit 14 Engineer 1 (M): We have a lot of maintenance to do on that accounting software. Engineer 2 (W): Yeah. I’m really not looking forward to all of that work. Engineer 1: Neither am I. But I think if we make a plan, we can save ourselves a lot of time. Engineer 2: That’s a good idea. First, we need to fix all of the problems with the software. Engineer 1: Okay. We can start with a round of corrective maintenance, then. Engineer 2: Exactly. Next, we need to work on updating all of the code. Engineer 1: Why do we need to do that? Engineer 2: So that it can run on new operating systems. Engineer 1: Oh right. I forgot about all the recent system upgrades. Engineer 2: So that will be a lot of adaptive maintenance. Engineer 1: That doesn’t sound so bad, I guess. Engineer 2: Yeah. Let’s just hope we don’t run into any unstructured code. Audioscripts Unit 15 Engineer 1 (M): The database software needs some reverse engineering. What are we doing about that? Engineer 2 (W): We’ll definitely need to do some redocumentation. Engineer 1: Really? Won’t that take a long time? Engineer 2: It will, but the code is too unstructured to edit right now. Engineer 1: Okay. Do you think we’ll have to edit the software after redocumentation? Engineer 2: Definitely. It’s going to take a lot of work to modernize this software. Engineer 1: Should we revamp the user interface also? Engineer 2: I think so. But we should work on that last. Engineer 1: This seems like a lot of work. Why don’t we just write a whole new program? Engineer 2: I thought about that. But I really think the legacy system has a lot of useful features. Engineer 1: Maybe you’re right. The update probably won’t take as long as starting from the beginning. Engineer 2: Exactly. Restructuring is much faster than writing new software. Engineer 1: Okay. We’d better get started. Answer Key 29 Book 3 Answer Key Unit 1 1 Suggested Answers 5 6 7 8 B: I agree. Do you want to split up the levels and then work on them separately? A: That’s a good idea. I’ll take the keystroke level and you get started on the syntax level. B: What goes into the keystroke level again? A: You describe the user’s physical actions, like keystrokes and mouse clicks. 1 Engineers use a few tactics to optimize their user interface designs. They use different models and views to imagine their software. This allows them to imagine all aspects of the user interface. Engineers use cognitive view to understand what information users need to know to operate a system. They use linguistic view to imagine the 9 Suggested Answer different ways a user will interact with a system. They use 1. Communication Component: design view to examine the screens and hardware - keystroke level: describes how a user will physically interact configurations that users need to interact with a system. with a computer 2 CLG is divided into three components, each of which is - syntax level: describes the potential dialog between users made up of two levels. The communication component and computers includes the keystroke level and the syntax level. The 2. Conceptual Component: conceptual component includes the task level and the - semantic level: describes the way tasks will be performed in semantic level. The material component includes the a system spatial layout level and the apparatus level. Each of these - task level: specifies tasks performed by the machine and by levels provides a view of a different aspect of a software the user system. Engineers use these views to optimize the user 3. Material Component: interface designs of their software. - apparatus level: describes the way hardware will be designed and the way it will operate 2 1 A 2 C 3 D - spatial layout level: describes the way screens and windows 3 Conceptual Component Views: task level, will be designed semantic level Communication Component Views: syntax level, Unit 2 keystroke level Material Component Views: 1 Suggested Answers spatial layout level, apparatus level 1 There are a few ways that engineers can improve the 4 1 A communication component B conceptual component user experience with user interface designs. First, they 2 A conceptual model B mental model must consider the ergonomics of computer hardware. 3 A Cognitive view B Linguistic view This means that they need to think about how the physical 4 A material component B CLG hardware of a computer works for the user. They also 5 A user interface B design view need to think about artistic design. This means that they Suggested Answer should consider the graphic interfaces that they are using Engineers use cognitive view to understand what information and try to make them simple and attractive. They also a user needs to operate a system. They also use linguistic need to think about the functionality of the software of the view to understand the ways that users will interact with a computer. They should try to make a range of functions system. easily available to users. Throughout the process, engineers should be designing for the end user. This 1F 2T 3T means that their designs should be intended for the consumer who will actually be using the computer. 1 about the components 4 split up the levels 2 The Seeheim model splits software design into two 2 is almost finished 5 started on the task level distinct parts. These parts are the software itself and the 3 the conceptual component 6 by the user software’s user interface. This means that the user does not have to interact with the software directly. The user Suggested Answer interacts with an interface that is intended to be attractive A: We need to talk about the components on the accounting to the user and easy to use. The software responds to software. commands dictated to it by the user interface. ModelB: The conceptual component is almost finished. view-controller paradigm splits software into three parts. A: When will it be done? These parts are the model, the view, and the controller. B: Probably by the end of this week. These systems are similar in that they both decompose software into distinct parts. A: What about the communication component? B: That hasn’t been started yet. 2 1C 2D 3A A: I think we should get to work on that as soon as possible. 30 Answer Key Book 3 Answer Key 3 4 1 C 2D 3A 4H 5E 6B 7F 8G 1 ergonomics 4 functionality 2 dialog 5 UVM 3 Seeheim model 6 Humanities 7 user-centered design 5 Suggested Answer Applicants should have a degree in software engineering or related field. They should also have 3+ years experience in software engineering and design. In addition, a specialization in HCI or task analysis would be preferred. 6 1F 7 2T 3F 1 worked on ergonomic design 2 designed keyboards 3 into software design 8 Suggested Answer 4 hardware for their systems 5 with artistic design 6 web interfaces history in software design. Thank you for taking the time to consider this application. Sincerely, Wanda Mayfield Unit 3 1 Suggested Answers 1 The software crisis is caused by an increased demand for new software and applications. Because demand for new software is so high, engineers cannot keep up with it. Software reuse could make it easier and quicker for engineers to develop new software. Software reuse allows developers to derive parts of new software from pieces of code that have already been written. Engineers can use existing software as the basis for new software and tailor other parts of the software to suit their specific needs. If developers reuse software on a large-scale basis, the productivity of the software industry could increase drastically. 2 White-box reuse and black-box reuse are two different kinds of software reuse. White-box reuse is an ad hoc method of software reuse. This means that an engineer takes a piece of code and modifies it to suit his or her specific needs. With black-box reuse, engineers do not make modifications to the software they reuse. This software is used unchanged as the basis for new software or applications. Because this software is used unmodified, it is common that engineers do not even know the full contents of the software . A: I’m here for the interview. B: Please come in. A: I’m excited to meet with you today. B: Let’s talk about your experience. Have you worked on designing presentation layers before? A: Yes. I designed interfaces that were intended for the end user. B: That’s very impressive. How would you incorporate that experience into software design? 2D 3C A: I think it’s really important that software engineers keep the 2 1 B end user in mind. Sometimes they get caught up in the 3 1E 3F 5G 7B functions of their systems. Then they forget that a novice 2A 4C 6D will have to use those systems. B: Interesting. Do you have any experience with dialogs? 4 1 A software crisis B Software reuse A: In school, I did studies on dialogs between users and 2 A approach B usage systems. 3 A White-box reuse B Black-box reuse B: And what place do you think dialogs have in software 4 A Compositional B Generative design? A: They’re very important. The best software in the world is 5 Suggested Answer useless if users don’t know how to interact with it correctly. Black-box reuse saves engineers time because they do not B: And you have a degree in computer programming? need to make modifications to the code. A: That’s correct. 9 Suggested Answer 6 1F 2F 3T To whom it may concern: 7 1 reusing some software 4 source codes that I am very interested in your open position for a user interface 2 some black-box reuse 5 might not be designer. I have worked in software design for five years. I’ve 3 time on the project 6 ad hoc application primarily worked in writing primitive code. I would really like to write more sophisticated programs. I am also very interested 8 Suggested Answer in HCI. A: Do you know anything about reusing? I think user interface design would be a very good fit for me. B: I reused some source code on the last application I I am comfortable working with the entire UVM. I have studied developed. ergonomics and would be happy to put that knowledge to A: Did it work well for you? use. I am good at task analysis and artistic design. B: It really saved me a lot of time on the project. I have a degree in computer science and a strong work Answer Key 31 Book 3 Answer Key A: Would you recommend white-box reuse? 3 1 ADL 5 Domain analysis B: No. You’ll save more time if you can find codes to reuse 2 intermediate product 6 application generator without having to change them. 3 code scavenging 7 transformation system A: Is it possible to do black-box reuse without paying for the 4 VHLL 8 MIL software pieces? 4 1 instantiate 4 program library B: Yes, but I’ve never tried that. 2 template 5 middleware A: I can do ad hoc application if I have to, but I’d prefer not to. 3 skeleton B: It would take more time than black-box reuse, but I think it 5 Suggested Answer would still save you time in the long run. Domain analysis programs search for information in existing pieces of code. They do this work automatically so that 9 Suggested Answer engineers do not have to do it manually. Hi Taylor, 6 1T 2F 3F I saw your email about software reuse. I did a fair amount of software reuse on the last application I developed. It saved 7 1 of transformation systems 4 task they perform me a lot of time! I would recommend doing black-box reuse. 2 transforms their code 5 explain middleware This means that the codes you use don’t need to be modified. 6 connects individual applications 3 will make mistakes White-box reuse requires a lot of ad hoc modification. This is really time-consuming. It’s also unsystematic, which makes it 8 Suggested Answer harder for other engineers to check your work for you. I would A: I don’t understand the benefits of program libraries. It also recommend looking into codes that are marketed as seems like it would be hard to find the codes you need. products. They can be relatively cheap and they will be much B: Not really. Engineers can use domain analysis programs easier to use. to search for specific codes. Hope that helps! A: Aren’t they worried that those programs will make Best, mistakes? Fred B: No. These systems are usually pretty sophisticated. A: I understand. Can you explain MILs to me? Unit 4 B: MILs provide a general plan on how an application will be 1 Suggested Answers structured. A: But why are they necessary? 1 There are many tools that allow engineers to reuse B: The benefit of MILs is that they let the engineer know software quickly and easily. These tools and the overall exactly what codes they will need to create a practice of software reuse allow engineers to develop complete system. software more quickly. This lets them keep up with the 9 Suggested Answer rising demand for new software and applications. 2 2 Engineers can use program libraries to find usable pieces of code for new applications. Domain analysis systems let them search for code and information that is relevant for their projects. Transformation systems help engineers translate vague ideas and plans for software into working systems. Middleware provides a network of connections between applications and operating systems for engineers to use. A transformation system saves engineers a lot of time and effort when developing new applications. Transformation systems are able to take vague plans for software systems and translate them into specific, functioning applications. An engineer must first make a plan for a system. This plan can be an MIL, an ADL, or another type of plan. Once the engineer makes a skeleton plan for the system, the transformation system translates and inserts code to add details to the system. This means that the engineer is not required to write all of the code manually. 1B 2C 3A 32 Answer Key One tool engineers use for software reuse is program libraries. These are libraries of codes that are available for insertion into new applications. These libraries allow engineers to search for the codes that they need. Since all the codes are collected in one place, they save engineers time. Another tool that engineers use is domain analysis programs. With these programs, engineers can specify what kind of data or codes they need. The program then searches for those pieces automatically in other software. It identifies usable pieces for engineers. These pieces can then be inserted into new applications. Without programs like these, engineers would have to search for code manually. This would be very time-consuming. Unit 5 1 Suggested Answers 1 Defensive programming is a practice that seeks to anticipate and prevent malfunctions in software. First, engineers must anticipate exception domains. Engineers think of ways that user input could cause problems with a Book 3 Answer Key program. Then, they create error messages for the user in 9 Suggested Answer those situations. The errors that the system catches are Hi Lucy, known as expected exception domains. However, I hear that you’re ready to perform reliability checks on your engineers can’t always predict exception domains. The new program. I recommend the N-version programming ones that the system does not detect are most likely to software reliability model. This programming uses a special cause damage. Therefore, defensive programming also technique to protect software against errors. In N-version involves creating systems that prevent errors from being programming, multiple programs are generated from the damaging. This means creating redundancy, or saving a same initial specifications. These programs are functionally second version of the information in a program. equivalent, meaning that they perform the same function. If 2 There are a few software reliability models. The creation of one program runs into an error, the other programs exist recovery blocks is an important tactic in software reliability. unharmed. This provides a backup system for programs. It’ll These blocks save information from a program before a give you insight into what might be causing malfunctions. user action takes place. If the user action causes an error, Hope that helps! the program can revert to those files to undo the error. -Greg Other software reliability models are BM and LPM. Each of these models uses statistics to predict the probability of Unit 6 error of a system. 1 Suggested Answers 2 1T 2F 3F 3 1 D 2 C 3G 4F 5 A 6 E 4 1 A 2B 3 B 4 A 5 B 6 A 7 H 8 B 9 I 5 Suggested Answer When a program is not fault-tolerant, it can malfunction. Software that malfunctions can be frustrating or dangerous. 6 1C 7 1 exception domains yet 2 your reliability checks 3 make a program 2A 4 accurate error probabilities 5 to that stage 6 in the long run 8 Suggested Answer A: How will you check the reliability of your new program? B: I haven’t even finished the standard and exception domains yet. A: You still need to think about building recovery blocks. B: What would you recommend I do? A: When I make a program, I like to use the N-version programming software reliability model. B: Why do you prefer that? A: I find it protects software against errors and provides a backup system for programs. Accurate error checks now will save you a lot of trouble in the long run. B: Yes. I want to have a lot of redundancy in this application so that it’s really fault-tolerant. A: You’ll definitely have a strong piece of software. B: That’s what I’m hoping for. I don’t want any problems like I had last time. 1 CASE stands for Computer Aided Software Engineering. CASE programs assist engineers in developing new software. These programs are generally known as environments. Environments provide different tools for developers to use. Some environments provide individual tools. Others provide tools in a workbench or toolkit. CASE programs can be integrated environments, processcentered environments, or language-centered environments. Each environment is suited to a different aspect of the development process. Different environments also allow different numbers of engineers to work on a project. 2 There are a few different levels of user scale. User scale refers to the number of people who will be working on an application. Different levels provide different tools for engineers. The lowest level of user scale is individual. An environment for individual use provides basic software development tools. Higher levels such as family, city, or state provide more complex features. These levels provide features that manage a network of engineers working simultaneously. They ensure that all engineers are following the same procedures. They also encourage cooperation between individuals. 2 1A 3 1A 2E 2D 3F 4B 3C 5C 6D 4 1 A family B city 2 A state B individual 3 A integrated environment B process-centered environment 4 A workbench B toolkit 5 Suggested Answer Engineers at the company use language-centered environments. They also use integrated environments and process-centered environments. Answer Key 33 Book 3 Answer Key 6 1T 2T 3F 7 1 the user scale 2 going to be 3 family level 4 need a lot of engineers 5 selecting the environmens 6 kind of environment 8 Suggested Answer 2 1 F 2 T 3 F 3 1 2 B A 3 D 4 E 5 C 6 F 4 1 Reserved checkout 2 Back-end 3 programming environment 4 UNIX 5 Unreserved checkout 6 visual programming environment A: Did you finish the specifications for the new project? B: I’m just putting the final touches on them now. 5 Suggested Answer A: I need to talk to you about the user scale. A: I think it’s going to be smaller than we anticipated. I’m An MWB environment was added. Graphical improvements looking at family level. We’re still going to need some were also made to the PCTE and SCCS. interaction between engineers. 2C B: What kind of environment do you think you’re going to go 6 1 C with? 7 1 the engineering staff 4 the reserved checkout A: We need really good tools for our engineers. 2 the CASE software 5 on the program files B: So do you think you will use an integrated environment? 3 a new UNIX program 6 our project managers A: Probably. I just want to make sure the one we’re looking at has all of the workbenches that our engineers need. B: How soon do you think you can get the environment set up??8 Suggested Answer A: Probably within the next few weeks. 9 Suggested Answer Team, Since this is going to be a fairly small project, I recommend that we use an environment with a family level user scale. We should also use an integrated environment. The environment should include a toolkit or workbench for engineers so that they do not have to worry about finding individual tools. This will save the company a lot of time and money in the long run. It will also keep the engineers happy. Marty Unit 7 1 Suggested Answers A: I have a request from the engineering staff about our CASE software. B: Is there a problem with it? A: It’s outdated. We’d like to replace the software with a new UNIX program. B: What does the UNIX program offer that our software doesn’t? A: A newer program would come with a visual programming environment. This would make it a lot easier to edit our programs. B: Are there other benefits? A: Yes. A new program would come with a PWB, which our current software doesn’t have. B: It sounds good, but I’m not sure if we have the budget for it. Is this program really necessary? A: Yes. If we want to produce software at a competitive rate, we need a program that supports our engineers. 1 Programming environments provide a number of features to help engineers. One feature is unreserved checkout. This means that multiple engineers can edit the same program at the same time. Another feature is SCCS. This 9 Suggested Answer is a system that keeps track of all changes made to a PebSoft Releases New CASE Software system. This helps engineers in case mistakes are made PebSoft’s new CASE software is very good because it in a program. Another feature is PCTE. This is a program includes a lot of features that other CASE software does not that provides tools for engineers to use in developing have. It comes with AWB, MWB, and PWB. Other CASE other programs. software available right now do not include MWB. It also has 2 There are a few types of workbenches found in integrated a good visual programming environment for most basic backenvironments. Each workbench supports a different phase of development. A PWB is a programmer end actions. Unfortunately, it features reserved checkout. workbench. This is used in the implementation and test Other available software allow for unreserved checkout. phases of development. An MWB is a management Overall, however, it is a very user-friendly program. workbench. This workbench is used by a project manager. It is used for the planning and control of a project. An AWB is an analyst workbench. It is used in the Unit 8 early phases of software development. 1 Suggested Answers 1 Configuration management prevents flaws by creating multiple copies of a program. If a mistake is made in a 34 Answer Key Book 3 Answer Key 2 3 4 5 program, these copies can be accessed. In some 9 Suggested Answer methods, a new copy is made every time a change is Hi team, made to a program. Another method is parallel We need to fix a flaw in the Phinneas project. Greg, I want development. This allows engineers to work on identical you to retrace recent steps until the origin of the flaw is copies of the same program. This method allows discovered. Then, remove the flaw from the code. It may be engineers to isolate some elements and continue working. necessary to create new configuration items to replace the Later, engineers can merge multiple documents created flawed ones. If this is necessary, send a change request to in parallel development. the CCB. If they approve your request, Alice will make the 2 There are a few methods of configuration management. In changes to the baseline of the system. Henry, I need you to some methods, copies of a program are saved every time work with Alice to integrate the fixed version of the program a change is made. These changes, or deltas, are recorded with your corresponding parallel developments. so that engineers can retrace them. If a mistake is made, Thanks, engineers can access the software version prior to the June Willis mistake. Some methods are change-oriented. This means Project Manager that they identify a program by describing changes that have been made to it. Other methods are version-oriented. Unit 9 This means that new versions of software are tracked with 1 Suggested Answers a linear numbering system. 1 There are many management styles. One is the 1F 2T T commitment style. In this style, decisions about a project 3 are decided by the overall goals of the project. This 1 configuration items 5 approve means that engineers do not need to consult with their 2 CCB 6 change request managers every time a decision needs to be made. 3 corresponding 7 configuration management Another style is the separation style. This style is 4 parallel development 1 A flaw B delta designed to promote maximum efficiency within a 2 A incorporate B retrace corporation. Another style is called task directedness. 3 A Change-oriented B Version-oriented This style focuses on the tasks that need to be achieved 4 A workflow B baseline for a project. It prompts employees to think carefully about the best strategies for achieving those tasks. Suggested Answer Allen needs to retrace the deltas from last week. Mary and Robert need to work on parallel development for the next phases. 6 1D 2 There are a few ways of organizing employees into teams. One way is to organize them into SWAT teams. These are teams of employees who share the same specific skills. These teams are usually given very specialized tasks to work on. Another type of team is a chief programmer team. These are teams of three employees in which one is the chief programmer. Th chief programmer is in charge of the project and the other two employees assist him or her. Employees can also be organized into a hierarchy. This makes it clear who is managing which parts of a project. 2C 7 1 changing the baseline 2 to approve it 3 before this flaw 4 of the parallel development 5 merge the fixed version 6 end of the week 8 Suggested Answer A: Can you give me an update on that flaw that we found last week? B: I’ve been retracing all the steps to get rid of it. It’s going really well. A: And did you send a request to change the baseline to the CCB? B: Yes. They already approved it. But there’s still a lot to be done before this flaw is totally gone. A: Like what? B: First, I need to change the problem in all of the corresponding developments. Then, I need to delete the deltas that still have the flaw in them. A: That sounds like it could be time-consuming. B: I should be able to finish it by the end of the week. 2 1T 2F 3 1D 2H 3B 4A 4 3F 5F 6C 7E 8G 1 chief programmer team 2 SWAT team 3 specialize in 4 open structured team 5 unit 5 Suggested Answer The woman suggests that the company use: commitment style, integration style, or relation style. She also recommends using chief programmer teams. 6 1D 2C 7 1 divide the employees 4 the most efficient Answer Key 35 Book 3 Answer Key 2 units of employees 3 create a hierarchical 5 structure with defined 6 use chief programmer 8 Suggested Answer A: Do you have any ideas for the team organization for the new project? B: For this project, commitment style will be most efficient. A: What benefit would that offer us? B: With commitment style, employees don’t have to consult their managers for every decision. They know what the goals are, so they can make decisions themselves. A: That sounds good, but I’m worried that the project will get off track without managers, though. B: That’s a good point. We could use relation directedness instead. A: I think that might be a better idea. B: Maybe. But I’m not sure if it would be the most efficient. A: You’re right. We need a structure that is efficient but still has a definite procedure. B: We could use integration style. A: I was just thinking that. That way people are encouraged to follow a procedure but they can also be creative. Can you start working on planning who will be on which units? process area. 2 There are a few sets of guidelines for software quality control. One is the CMM. This stands for the Capability Maturity Model. This model focuses on the software development process. The CMM has a set of directions and procedures for engineers to follow. These directions improve the development process and create more reliable software. Another set of guidelines is the IEEE Standard for Quality Assurance Plan. This plan is also a set of procedures aimed at ensuring quality in software. Another set of guidelines is the ISO 9001. This is a set of requirements that software must meet. 2 1T 3 4 9 Suggested Answer Hi Lou, We need a new management style for our expanding department. I think we should try task directedness. This style works by focusing on the individual tasks that need to be achieved as part of a project. In task directedness, employees are encouraged to think about good methods for achieving those tasks. The advantage of this style is that it is very goaloriented. Employees are constantly encouraged to think about end results and achieve them. However, one of the disadvantages of this style is that it does not focus on communication or relationships between employees. This means that the style forms no clear hierarchical structure. For that reason, we might consider combining it with another style. Let me know what you think. -Theresa Unit 10 1 Suggested Answers 1 There are many ways that software companies maintain quality control. Companies follow the guidelines set forth by various quality control models. They have engineers develop quality factors for different stages of their software. These are attributes that software must have at different stages in its development. Engineers develop quality criteria to determine if quality factors are met. They also develop key process areas. These are other indications of the quality of a software system. Engineers think of key practices. These are activities and implementations that will aid the development of a key 36 Answer Key 2F 3F 1 IEEE Standard for Quality Assurance Plans 2 Quality control 3 key practice 4 TQM 5 key process area 1 A Quality factors 2 A ISO 9001 3 A conform to 4 A common feature B Quality criteria B CMM B improve B maturity level 5 Suggested Answer The company can improve its quality control by focusing on quality criteria instead of quality factors. 6 1C 7 1 on quality control 2 find some problems 3 if we redefine 2A 4 notice any other 5 quality factors 6 about the quality criteria 8 Suggested Answer A: Did you see the latest quality control report? B: It looks like a lot of things are going to change around here. A: I was surprised because I felt we did a good job on quality control. B: Really? I expected that they were going to find some problems. A: Now that you mention it, we are having a lot of trouble meeting maturity levels in my department. B: That’s been a problem in my department too. I think it will be good if we focus on developing better key practices. A: But I haven’t noticed any other problems. Have you? B: A few. I think the company needs to adhere to the ISO 9001. It’s a standard way for us to prove that our software is reliable. A: You’re right. We should try to live up to those guidelines. B: That makes sense. Hopefully management will address all of this at the next meeting. Book 3 Answer Key 9 Suggested Answer 8 Suggested Answer Quality Control Report for: KernSoft Industries The company can improve its quality control using a few simple methods. One is to set better definitions of software maturity levels. This will help engineers understand the key process areas and key practices that they need to work with. The end result of this will be more mature software. Another tactic is to set quality factors which can be measured by quality criteria. The company should adhere to the IEEE Standard for Quality Assurance Plans. This will help them maintain quality control in their procedures. The company should also adhere to the ISO 9001. This ensures that their software meets strict guidelines for quality. A: The latest budget and cost reports are a little different depending on which algorithm you look at. B: Give me the good news first. A: The good news is that according to Watson-Felix, we are right on schedule. B: What about if you look at the comparison method? A: According to the comparison method, we are just barely behind schedule on the project. B: Why are we behind schedule? A: This project has presented us with some different challenges than the last one. We underestimated the amount of manmonths needed to finish it. B: Will this affect the overall cost of the project? A: It will, but the budget estimates are still pretty accurate. Luckily, we didn’t make them too optimistic. Unit 11 B: That’s good. I really can’t afford to have another project go 1 Suggested Answers over budget. 1 There are a few factors that should be taken into account A: We’re working really hard to get the development time down. in a budget. It is important to consider the size of the project. Software projects are measured by how many 9 Suggested Answer lines of code they need. This is measured in KLOC. Hello Andrea, Engineers should try to estimate the KLOC before We need a new model for our budget estimate. One option is the creating a budget. When they know the KLOC, they can comparison method. This method works by using a budget from a estimate how many man-months it will take to create the completed project to form a budget for a new project. The code. This tells them how long it will take to write the advantage of this method is that most of the work has already software and how much money they will have to pay the been done to estimate the budget. However, the disadvantage to engineers. this method is that the budget must be modified to fit the new 2 There are a few models for calculating budgets. One project. If the budget is not modified properly, the budget is likely model is the comparison method. This method compares a new project to one that is already completed. The to be inaccurate. If we use this method, we’ll have to be careful to accuracy. Let me know what you think. budget for the new project can be based on the budget ensure for the completed one. Another method is an algorithmic Harold model. This uses a formula to estimate how much time and money it will take to complete a project. Unit 12 2 1F 2T 3T 1 Suggested Answers 3 1B 2A 4 1 A base formula 2 A KLOC 3H 4E 5J 6C 7D 8F 1 9G 10 I B man-month B budget 5 Suggested Answer The budget for the last project was inaccurate because the comparison method was used hastily. It was also inaccurate because the learning effect was incorrectly estimated. 61C 2 2A 7 1 budget and cost reports 2 on which algorithm 3 good news first 4 according to the Putnam model 5 barely behind schedule 6 have a higher KLOC 2 When a new project begins, there are risks that threaten the success of the project. A project manager must identify these risks in order to avoid problems. Risks are possible threats to the health and safety of the people working on the project and the project itself. Risks and risk management play a huge role in successful projects. If risks are not dealt with early on the project, the entire project can fail. Project managers have many tools that help them organize projects. One tool is a PERT chart. This helps organize the tasks in a project. It uses critical paths to show which steps need to be accomplished for the project to be successful. Another useful chart is a Gantt chart. This chart shows the time frame of the project. It organizes when certain tasks need to be accomplished. 1B 2D 3D Answer Key 37 Book 3 Answer Key 3 1H 2F 3G 4C 4 1 A Gantt chart 2 A product certainty 3 A allocation problem 5A 6B 7D 8E all employees know what kind of behavior is expected of them. 2 It is important to maintain integrity in any kind of work. Honesty is a quality that is necessary for good business to take place. It is especially important for software engineers. Engineers have the responsibility of developing good, useful software that customers can depend upon. If engineers do not work with integrity, the client will likely not receive the best product possible. B PERT chart B Process certainty B realization problem 5 Suggested Answer Degree of certainty is a scale from high to low. It is measured by product certainty, process certainty, and resource certainty. 6 1F 2F 2 3T 3 1 2 7 1 workshop on project management 4 Did they give 2 degree of certainty 5 last topic 3 identify risk factors early 6 talked about PERT charts 8 Suggested Answer A: I was at the project management workshop. It was interesting. B: What did they discuss? A: They discussed three main areas of project management. First, they covered degree of certainty, which I learned a lot about. Then, they covered risk management. I already knew plenty about risk factors. B: What else did they discuss? A: The last topic was PERT charts and Gantt charts for organization. I actually thought that session was really useful. B: I wish I had signed up. A: Overall I thought it was very worthwhile. 4 1 Suggested Answers 1 A code of ethics is an important set of rules or guidelines that many businesses have. It details certain principles that employees should follow. An example of a principle in a code of ethics is that employees should maintain their integrity at all times. A code of ethics is important so that 38 Answer Key H G 2B 3C 3 A 4 D 5 B 6 C 7 F 8 E 2 A 3B 1 A 5 Suggested Answer One example of ethical behavior is having high standards for the quality of a product. Another example is having integrity when dealing with clients and coworkers. 6 1F 2T 3F 7 1 2 3 8 Suggested Answer A: Let’s talk about ethics. B: It is very important in software engineering and to me personally. A: Can you tell me about a time that you had to defend your principles? B: One time my manager wanted me to approve software that hadn’t been tested. A: Why didn’t you? B: I knew that there would be some problems with the software. A: Wouldn’t it be better to get it to the client on time? B: I have high standards for the software I produce. It’s more important to look out for the public interest. A: That’s great. B: I want to emphasize that integrity is important in my personal practices. 9 Suggested Answer Dear Jim, I’m sorry you weren’t able to go to the project management workshop. Here are some things that you missed: The first topic of discussion was control situations. The presenter covered realization problems, allocation problems, design problems, and exploration problems. I actually learned a lot in this session, especially about exploration problems. Next they presented on risk management. I already knew a lot about risk factors and how to identify them. I assume you already know quite a bit about it too. Lastly, they discussed charts for organizing project tasks. They handed out copies of examples. I picked up a set for you. Shirley 9 Unit 13 1D defend your principles 4 protect the best interests meet a deadline 5 make that decision wasn’t tested yet 6 high standards for the software Suggested Answer To Whom It May Concern: I think I would be a good fit for your software engineer position. As you’ll see from my résumé, I am very qualified. But I believe that my principles set me apart from other candidates for this position. I am a person that values integrity. I always ensure that the software I approve has been adequately tested. I have never been deceptive or unethical in my work or in my interactions with the public. I believe that unethical behavior can lead to frustrating and Book 3 Answer Key sometimes dangerous situations for employers, co-workers, and clients. If you hire me, you will find that I uphold excellent standards. Unit 14 A: What are your thoughts on SaaS? B: In my opinion, it is a fast and reliable way of sharing information and software. 9 Suggested Answer SaaS and PaaS Review Both SaaS and PaaS offer a wide variety of services. SaaS offers software hosted by a provider. PaaS offers software that can be rented by users. In both cases, fees are charged to the users. Some companies charge metered fees, and others prefer a pay-as-you-go system. To access cloud technology with both SaaS and PaaS, the computer must be online. From there, any web browser can access the cloud. 1 Suggested Answers 1 Software is in high demand. To meet the demand, there are several ways that it is distributed. One common way is software as a product. In this model, software is packaged and sold as a commodity to users. There is also software on demand. In this version, software can be rented at the user’s request. Cloud computing allows software to be accessed over an online network through SaaS and PaaS. Unit 15 2 3 4 5 6 2 When companies purchase software licenses, they are able 1 Suggested Answers to distribute that software. Users can gain access to the 1 Software engineering is an expanding field with many software by paying a fee. Some companies allow users to carrier opportunities. Developers are the engineers who pay a metered fee. A metered fee is charged when users are responsible for creating and designing software. only pay for the information they have accessed. There is Testers and analysts ensure that the software works, and also pay-as-you-go where users pay for software in identify areas that need improvement. Researches and advance as they need it. educators typically work in the academic environment, studying theories and methods for software use and 1D 2A 3B development. Those who work in the field may be employed by large companies, or they might own their 1H 3F 5A 7C own businesses. Some work as freelancers and 2G 4D 6B 8E contractors. 2 The abundance of jobs in the software development 1A 2B 3B industry is largely a result of the quickening software life cycle. Software technology changes rapidly. As soon as a Suggested Answer program is developed, programmers are working on ways In order to gain access to cloud computing, computers must to expand and improve it. As computer capabilities meet certain requirements. First, the computer must be improve, consumers expect more from their software. online. Also, a large bandwidth allows faster sending and Developers must constantly evaluate, test, and implement receiving of information. new and better ideas. Since this process is ongoing, the need for talented software engineers grows constantly. 1F 2F 3T 7 1 you know about SaaS 4 software license 2 operates under cloud computing 5 do they pay 3 distribution of computing and storage 6 prefer pay-as-you-go 2 8 Suggested Answer A: I’m thinking of upgrading to SaaS. But I’m not very familiar with it. B: SaaS is a networking model that operates under cloud computing. A: What’s cloud computing? B: Cloud computing is a way for a large number of people to receive information. For example, a company purchases the software licenses and then makes the software available to a group of users over an online network. A: How do they pay for that? 3 1J B: They charge their users a fee. Some prefer a metered fee, 2F and others use a pay-as-you-go system. Action Starting as a tester or analyst 2 Working in the educational field 3 Becoming a developer Becoming an architect Joining a professional organization 3I 4E 5H 6A Benefit 1 Promotes critical thinking and problem-solving skills. Is an opportunity for professional development. Most industries have software development needs. 4 Hardware development is an expanding industry. 5 Comes with opportunities for networking and career development. 7C 8B 9G 10 D Answer Key 39 Book 3 Answer Key 4 1 developers 2 IEEE 3 analyst’s 4 contractor 5 Educators 6 software life cycle 5 Suggested Answer Professional organizations provide opportunities for networking and career development. 6 1F 2T 3F 7 1 be a developer 2 might want to 3 do you think 4 analyze technology 5 on the side 6 lots of options 8 Suggested Answer A: I wanted to thank you again for your letter of recommendation. B: You’re welcome. I hope you get into that engineering degree program. Have you decided what your focus will be? A: Eventually, I want to be a manager of my own firm. But technical support interests me, too. B: Have you thought about being an analyst? A: I’m considering it. What do you think of that idea? B: I think that’s a smart move. Before you develop technology, it helps to be able to recognize problems and solutions. A: That’s what I was thinking. Then maybe I could be a freelancer on the side. . B: That’s a great way to advance your career. A: Do you know where I can get more information about career options? B: The ACM is a well-respected organization. 9 Suggested Answer To whom it may concern, I am very interested in your software engineering degree program. I hope to be a developer someday, and I think this program will be an excellent foundation. Immediately after I graduate, I would like to work in technical support. I think this will help me gain a deeper knowledge of the principles. If I can recognize problems and find solutions, I can be a better developer myself. Furthermore, your program has great research opportunities, and I am especially interested in the analyst internship that you offer. Thank you for considering my application. Sincerely, Clyde Feldman 40 Answer Key Audioscripts Unit 1 Unt 3 Engineer 1 (M): Hey have you got a second? Engineer 2 (W): Sure. What’s up? Engineer 1: We need to talk about the components on the library software. Engineer 2: Okay. Well, the material component is almost finished. Engineer 1: When will it be done? Engineer 2: Probably by the end of this week. Engineer 1: That’s good. What about the conceptual component? Engineer 2: We didn’t start that yet. Engineer 1: Oh. I think we should get to work on that as soon as possible. Engineer 2: I agree. Do you want to split up the levels and work on them separately? Engineer 1: That’s a good idea. I’ll take the semantic level. You get started on the task level. Engineer 2: What goes into the task level again? Engineer 1: You define the tasks performed by the user and the tasks performed by the software. Engineer 2: Right. And the semantic level describes the tasks more generally, right? Engineer 1: Yeah. That’s correct. Do you think you can manage it? Engineer 2: It shouldn’t be a problem. I’ll keep you updated on my progress. Engineer 1 (M): Hey can you help me with something? Engineer 2 (W): Sure. What do you need help with? Engineer 1: I’m thinking about reusing some software on a new project. But I never tried that before. Engineer 2: I did some black-box reuse on my last application. Engineer 1: Did it work well for you? Engineer 2: Yeah, it was great. It really saved me a lot of time on the project. Engineer 1: Huh. Would you recommend black-box reuse? Engineer 2: Yeah, it was okay. I used source codes that were for sale. They were more suited to the project I was working on. Engineer 1: Is it possible to get source codes for free? Engineer 2: I think so, but they might not be as specific as the kind I used. Engineer 1: I could just do some ad hoc application. Engineer 2: Yeah. It would take more time than black-box reuse. But I think it would still save you time in the long run. Engineer 1: Do you think software reuse is a good idea? Or should I just write the code myself? Engineer 2: Try the reuse. If it doesn’t work out, you can start from scratch on your next project. Engineer 1: I guess that’s true. I’ll look into getting the codes I need. Thanks for your help. Unit 4 Student (M): Excuse me, could I talk to you for a moment? I have a few questions on software reuse. Unit 2 Instructor (W): Sure. What do you need? Student: I don’t really understand the benefits of transformation Engineer (M): I’m excited to meet with you today. systems. Why can’t engineers do that work themselves? Manager (W): Good. Let’s talk about your experience. It says Instructor: Transformations systems save time. While the here that you worked on ergonomic design before? Engineer: Yes. I designed keyboards for a hardware production system transforms their code, engineers can work on other company. projects. Manager: How would you incorporate that experience into Student: Aren’t they worried that the system will make mistakes? software design? Engineer: I think it’s really important that software engineers Instructor: Not really. These systems are usually pretty sophisticated. The task they perform is more basic than it understand the hardware for their systems. might sound. Manager: How do you think they can do that? Engineer: They need to think about the physical way a user Student: Okay. I guess I understand. Can you explain middleware to me? interacts with a computer. Manager: I agree. Do you have experience with artistic design? Instructor: Sure. Middleware is go-between software. It connects individual applications to an operating system. Engineer: Yes. I worked on web interfaces at my previous firm. Manager: And what place do you think artistic design has in Student: But why is it necessary? Instructor: The benefit of middleware is that it helps the software design? operating system make sure that applications are running Engineer: I think it’s one of the most important factors Good smoothly. Middleware works even if there are a lot of software is useless if it has an inefficient interface. applications running at the same time. Manager: That’s a great point. And it says here that you have a Student: Oh, I see. It’s like an application manager. degree in computer science. Instructor: No, I think that clears everything up. Engineer: Yes, that’s right. Instructor: Great. We’ll talk about this more in class today. Manager: Well, it certainly seems like you have the qualifications for this job. I’ll make my decision soon. Unit 5 Engineer 1 (M): How do you plan to check the reliability of your Answer Key 41 Audioscripts new program? Engineer 2 (W): I haven’t even finished the standard and exception domains yet. Engineer 1: Yeah, but you still need to think about your reliability checks. Engineer 2: I guess so. What would you recommend? Engineer 1: When I make a program, I like to use BM and LPM. Engineer 2: Why do you prefer those? Engineer 1: I find that they give more accurate error probabilities than other methods. Engineer 2: I didn’t know that. I’ll keep it in mind when I get to that stage. Engineer 1: You definitely should. Accurate error checks will save you a lot of trouble in the long run. Engineer 2: I understand that. I’m probably going to use recovery blocks in this application, too. Engineer 1: That’s a good idea. It sounds like you’ll have a strong piece of software. Engineer 2: That’s what I’m hoping for. I don’t want any problems like last time. Engineer 1: What happened before? Engineer 2: The application wasn’t as fault-tolerant as I thought it was. Engineer 1: That’s too bad. Did it malfunction a lot? Engineer 2: It did. It was disappointing, but I learned a lot from that experience. Unit 6 Engineer 1 (M): Have you finished the specifications for the new project yet? Engineer 2 (W): I’m just putting the final touches on them now. Engineer 1: Great! I need to talk to you about the user scale. Engineer 2: I think it’s going to be pretty big. Engineer 1: Do you think it will be family level? Engineer 2: Actually, I’m looking at city level. If we’re going to finish on time, we’ll need a lot of engineers. Engineer 1: Wow. I guess it’s even bigger that I thought it would be. Engineer 2: Yeah. Anyway, you might want to start selecting the environments. Engineer 1: Great. I’ll do that right away. Engineer 2: What kind of environment do you think is best? Engineer 1: Well, we definitely need something that can manage input from a lot of people. Engineer 2: So do you think you will use a process-centered environment? Engineer 1: Probably. I just want to make sure the one we’re looking at has the right tools. I want our engineers to have everything they need. Engineer 2: How soon can you get the environment set up? Engineer 1: Probably within the next few weeks. Unit 7 Engineer (M): Can I talk to you for a minute? I have a request 42 Answer Key from the engineering staff. Owner (W): Sure. What’s up? Engineer: It involves the CASE software that we are currently using. Owner: Is it malfunctioning? Engineer: Not exactly. It’s kind of outdated though. We’d like to get a new UNIX program. Owner: How is the UNIX program going to help? Engineer: Well, one of our problems is the reserved checkout. Right now, only one engineer at a time can work on the program files. With unreserved checkout, several engineers could work at once. Owner: I see. Are there other benefits? Engineer: Yes. The UNIX program comes with an MWB. This would help out our project managers. Owner: It sounds good, but I’m not sure if we have the budget for it. Is this program really necessary? Engineer: I think so. To produce software at a competitive rate, we need programs that support our engineers. Owner: I understand that. I’ll go over the budget and see if the upgrade is possible. Engineer: Great. Let me know what you decide. Unit 8 Manager (M): Can you give an update on that flaw that we found last week? Engineer (W): Yeah. I retraced all the steps to find the problem. Manager: And were you successful? Engineer: Yes. I just finished double-checking my work. Manager: Great. Did you send a request to the CCB about changing the baseline? Engineer: The request is already sent. I’m just waiting for them to approve it. Manager: Great. You’re really on top of things! Engineer: Well, there are still a few steps before this flaw is fixed. Manager: Like what? Engineer: First, I need to get the latest copy of the parallel development documents. Manager: That shouldn’t take too long. What else do you have to do? Engineer: Well, then I need to merge the fixed version with the updated version. Manager: Oh. That sounds like it could be time-consuming. Engineer: It will be. But I should be able to finish it by the end of the week. Manager: That’s the spirit. I just hope this is the only flaw we have to deal with on this project. Engineer: I do, too. I definitely don’t want to have to do all of this again. Unit 9 Owner (M): Hi, Cindy. Do you have a minute to discuss the new Audioscripts team organization? Manager (W): Yes, I’d be happy to. Owner: Did you come up with any ideas for the latest project? Manager: I did. I think it will be most efficient to divide the employees into SWAT teams. Owner: What benefit will that offer us? Manager: With SWAT teams, we can assign specific tasks to units of employees. Each unit works independently on a particular task. Owner: That sounds good. But I’m worried that the units won’t communicate with each other enough. Manager: Hmm, that’s a good point. We could create a hierarchical structure instead. Owner: I think that might be a better idea. Manager: Maybe. But I’m not sure if it would be the most efficient. Owner: You’re right. We need a structure with defined units. But we also need strong management. Manager: We could use chief programmer teams. Owner: I was just thinking that. That way everyone knows whom to report to. Manager: Right. But they would still be working on specialized tasks. Owner: I like this idea. Can you start assigning employees to different units? Manager: Sure. I can send you some lists tomorrow. Unit 10 Engineer 1 (M): Did you see the latest quality control report? Engineer 2 (W): I did. It looks like a few things are going to change around here. Engineer 1: I know. I was really surprised! I felt we did a good job on quality control. Engineer 2: Really? I expected them to find some problems. My department’s having trouble meeting key practices. Engineer 1: Now that you mention it, I guess that’s a problem in my department, too. Engineer 2: I think we’ll be okay if we redefine the key process areas. Engineer 1: But I didn’t notice any other problems. Did you? Engineer 2: A few. I think the company needs to stop focusing so much on quality factors. Engineer 1: Really? Why? Engineer 2: Because it’s hard for a lot of engineers to work that way. It’s better to think about the quality criteria. Engineer 1: Oh, I understand. That way, engineers can actually measure their improvement. Engineer 2: Exactly. Engineer 1: That makes sense. Hopefully, management will address all of this at the next meeting. Engineer 2: I think they will. I know that most of the managers were not very pleased with the audit results. Unit 11 Manager (M): I have the latest budget and cost reports for the accounting software project. Owner (W): Great. I’d love to hear them. How do they look? Manager: It’s hard to say. The reports are a little different depending on which algorithm you look at. Owner: Give me the good news first. Manager: Okay. Fortunately, according to the Putnam model, we are right on schedule. Owner: That’s great! What about if you look at the Delphimethod? Manager: According to the Delphi-method we are just barely behind schedule. Owner: That’s not too bad. Why are we behind schedule? Manager: We estimated some software sizes incorrectly. Some have a higher KLOC than we expected. Owner: Will this affect the cost of the project? Manager: It will, but the overall budget estimate is still pretty accurate. Luckily, we didn’t make it too optimistic. Owner: That’s good. I can’t afford to have another project go over budget. Manager: I understand. We’re working really hard to get the development time down. Owner: Good. Keep me updated on any other changes in the budget. Manager: I will. I’m hoping we won’t have to make any more. Unit 12 Engineer 1 (M): Hi Shirley. Where have you been? Engineer 2 (W): I was at the workshop on project management. It was interesting. Engineer 1: I didn’t sign up for it. Was there any good information? Engineer 2: Overall, it was really informative. They discussed three main topics in project management. I learned a lot about degree of certainty. Engineer 1: Interesting. What else did they discuss? Engineer 2: They also talked about risk management. I didn’t realize how important it actually is to identify risk factors early. Engineer 1: I hadn’t really thought about it either. Did they give any tips for organization? Engineer 2: Yeah, that was the last topic they addressed. I already knew about a lot of them, though. Engineer 1: Which methods did they discuss? I’m about to run my first project, and I’m wondering what might be useful. Engineer 2: Well, they talked about WBS, which I use all the time. They also talked about PERT charts. Engineer 1: Did they cover Gantt charts? Engineer 2: Time ran short, so they just told us where to find more information. Engineer 1: I’d like to know more about it. Engineer 2: I’ll give you some handouts from the workshop. Answer Key 43 Audioscripts Unit 13 Interviewer (W): All right, Jon. Let’s talk about ethics. Engineer (M): It is an increasingly important topic in software engineering. Interviewer: I’m glad to hear you say that. Can you tell me about a time when you had to defend your principles? Engineer: At my last job, my manager really pushed me to meet a deadline. But the software wasn’t ready for public use yet. Interviewer: What was wrong with it? Engineer: It was designed to protect private records. But it wasn’t tested yet to ensure security. Interviewer: So what did you do? Engineer: Well, I wanted to protect the best interests of the public. I refused to deliver the software without adequate testing. Interviewer: That was very bold. Why did you make that decision? Engineer: For one thing, I have high standards for the software that I produce. Interviewer: Weren’t you afraid that you would be fired? Engineer: That’s easy. You can access the cloud through any web browser. Unit 15 Intern (M): Hey, Dana. I wanted to thank you again for your letter of recommendation. Engineer (W): Oh, you’re welcome, Clyde. I hope you get into that engineering degree program. Intern: Yeah. It should be a great experience for me. Engineer: Do you know what your focus will be? Intern: Eventually, I want to be a developer. But the academic side interests me, too. Engineer: So you might want to be a researcher? Intern: I’m considering it. What do you think of that idea? Engineer: I think that’s a smart move. You have to be able to analyze technology before you can develop it. Intern: That’s what I thought. Then maybe I could be a freelancer on the side. Engineer: Oh, sure. That’s a great way to advance your career. Engineer: Not really. In the long run, I was protecting the welfare Intern: Right. Wow, it really seems like there are lots of options in of the company, too. this field. Interviewer: That’s great. High standards for software are Engineer: There are. Software engineering is an exciting industry important. But they should never be valued more than to work in. integrity. Intern: Do you know where I can get more information about Engineer: Yeah, integrity is important to me. I want employees career options? and clients to trust me. Engineer: The IEEE is a well-respected international organization. Check out their website. Unit 14 Intern: Great. I’ll take a look. Manager (M): Hey, Tonya. I’m thinking about upgrading the company’s network, and I was wondering what you know about SaaS. Engineer (W): SaaS is a networking model. Manager: I don’t know much about computers. What does that mean? Engineer: Let me explain the basics. SaaS stands for Software as a Service. It is a model that operates under cloud computing. Manager: What’s cloud computing? Engineer: It’s a distribution of computing and storage services. Manager: So it’s a way to access information? Engineer: Yes, partly. Clients purchase the rights to a software license. Then they share that software with their users. Manager: Okay. How do they pay for that, though? Engineer: Clients typically pay regular fees. Some companies charge users metered fees, while others prefer pay-as-yougo. It just depends on your needs. Manager: I see. So what role does SaaS play in cloud computing? Engineer: SaaS is a type of cloud in which software is available over a network. In my opinion, it is a reliable way of sharing information and software. Manager: How does someone access the software? 44 Answer Key