Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 43 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
43
Dung lượng
1,92 MB
Nội dung
Table of Contents Answer Key Audioscripts 13 Answer Key 16 Audioscripts 26 Answer Key 30 Audioscripts 41 Book Answer Key Unit Unit Suggested Answers Suggested Answers 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 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 Software engineers must be able to write software on a variety of topics that they may be unfamiliar with 1C 2D 3B 1D 2H 3G 4A 5B 6C 1A 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 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 1D 2D 3B 1C 2A 3B notebook server 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 1T 2T 3F software engineering be hard programming-in the-large evaluate investigate problems sounds like Suggested Answer 5D computers embedded computers computing cluster Suggested Answer Tablets are useful because they are small and provide added mobility 1T 4E 2F 3T working on finish that laptops and desktops tablets Lots of people this version 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 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 Suggested Answer screen Is Software Engineering Right for You? Rewards 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 Answer Key Book Answer Key new version will be ease of use on a small screen 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 Suggested Answers 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 Computers typically display information on a screen, Unit which is housed in a monitor Most monitors today are flat panel monitors Users often need to produce hard Suggested Answers 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 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 1T 2T 3F of a computer wireless flat panel laser printer A computer cannot function at all without a power supply scroll wheel keyboard peripherals Some computers must be plugged into an outlet, while others can operate from battery power The power supply 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 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 not need to be physically plugged into the computer 1T A cover 1B can I help is incorrect I’m sorry 2A optical mice How many none of them 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 A case B port Cooling: heat sink, fan Routing Energy: power supply, motherboard Accessing Data: hard drive, CD/DVD drive Suggested Answer Most computers have a fan to improve airflow, and a heat sink to carry heat away from the computer’s working parts slow processor warm case problem overheating loud fan defective heat sink really slow make a lot the fan 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 you say that? A: It’s really close to a window And I heard some hissing noises near the power supply Answer Key Book 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 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 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 Suggested Answers Unit A system software allows computers to operate and it Suggested Answers comes in many forms A basic system software allows 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 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 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 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 1A 2D 3B may have to quarantine certain files until the threat is removed 1D 2E 3A 4B 5F 6C 1T 2F 3F A hardware A device driver B firmware B system software deny permits security software 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 Suggested Answer 1F 2T 3T Spyware and viruses are both malware, but they function differently Spyware is hidden software that collects personal system software quiz tomorrow data from the computer, and users often not notice it is hard assignment chapter again there Viruses, on the other hand, usually noticeably disrupt modern operating systems forget to study computer functions Suggested Answer Suggested Answer A: What did you think of that assignment about firmware? B: I think I did well That assignment was hard, though A: I thought so, too B: I’m ready to study windowing systems They are much easier Answer Key 1C 2A removed the spyware confidential information security software happen again keep trying better update Book Answer Key Suggested Answer 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 1B about the difference a linker connects reads the information what decodes interpreter programming languages 2A 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 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 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 Suggested Answers Programing language / Text editor: A programming language 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 types of software the programmers use to enter code Suggested Answers Some software is very basic Other software provides 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 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 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 their taxes People often use word 1F 2T 3F processors at home to type documents or read documents that have been sent to them 1F 2B 3C 4A 5E 6D Unit A IDE B text editor A linker B debugger 1C 2A 3C 2B 3B 1A 4A Answer Key Book Answer Key Accounting office suite Suggested Answer enterprise software Image editing web browser spreadsheet 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 the memo the office suite be updated accounting software other programs see what you mean Suggested Answer 3F 2A Suggested Answer 2T 1C 1T 2F 3T software developments working cost analysis route planning adapt digital assistants A: Did you see the memo from the CEO? 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 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 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 Unit 10 Suggested Answers Suggested Answers 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 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 1B Answer Key 2B 3A 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 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 Answer Key 1F 2T 3F 1F 2E 3A 1B 2B 3A Suggested Answer A over B times 4D 5C 6G 7B 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 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 1B 2B instead of higher can I help open it your desktop Suggested Answer nothing happens right-click 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 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 new program schedule you finish fifteen hundred divided by three engineers 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 it? B: I think so We have four engineers working on it A: So you need each engineer to sixty lines per day B: Sixty? Oh, of course Sixty lines times four engineers equals two hundred forty 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: 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 Suggested Answers 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 Suggested Answers times is six Part of a whole are often expressed as fractions A whole 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 1F 2T 3T Answer Key Book Answer Key 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 1E 2D 3C 4A 5B 6F decimal number converted fraction percent 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% 1D 2C wanted to software update out of four-fifths focus on 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 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 1A 2C 1H 2G 2B Unit 13 Suggested Answers 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 1F 2T 3T new programs fluctuated increase steady pace you think no doubt 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 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 out of 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 Suggested Answer SuggestedAnswer Suggested Answer 1A 3B A: How the new programs on the market? B: The demand for the income tax software has really fluctuated A: Why 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 you think it will 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 Answer Key What did the presenter 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 Suggested Answers 2 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 Suggested Answers Engineers work in a field that requires complex and 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 4C 5D handout review note card presentation eye contact 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 1T 2F note cards wrong with make eye contact Area of study Foundation year 3 A bachelor’s degree A circuit analysis Suggested Answer Suggested Answer A: What you think of my presentation? B: I was impressed with your ideas But you need to work on your presentation skills A: What 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 3F was impressed with couldn’t hear you project my voice Subjects covered basic engineering principles, linear algebra, calculus Computer Engineering computer architecture, general electronics Upper-level software implementation of control systems, engineering courses complex programming D E C 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 1F advanced courses foundation to take calculus Suggested Answer Suggested Answer Presenter: Jill Steadman Please rate the presentation between (low) and (high): 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 should I take computer engineering computer architecture A: Let’s talk about next semester B: Can I enroll in software programming courses yet? Answer Key 11 Book Answer Key Unit 1 Suggested Answers 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 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 Suggested Answer different ways a user will interact with a system They use 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 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 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 Material Component: interface designs of their software - apparatus level: describes the way hardware will be designed and the way it will operate A C D - spatial layout level: describes the way screens and windows Conceptual Component Views: task level, will be designed semantic level Communication Component Views: syntax level, Unit keystroke level Material Component Views: Suggested Answers spatial layout level, apparatus level There are a few ways that engineers can improve the A communication component B conceptual component user experience with user interface designs First, they A conceptual model B mental model must consider the ergonomics of computer hardware A Cognitive view B Linguistic view This means that they need to think about how the physical A material component B CLG hardware of a computer works for the user They also 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 about the components split up the levels The Seeheim model splits software design into two is almost finished started on the task level distinct parts These parts are the software itself and the the conceptual component 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 1C 2D 3A A: I think we should get to work on that as soon as possible 30 Answer Key Book Answer Key C 2D 3A 4H 5E 6B 7F 8G ergonomics functionality dialog UVM Seeheim model Humanities user-centered design 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 1F 2T 3F worked on ergonomic design designed keyboards into software design Suggested Answer hardware for their systems with artistic design web interfaces history in software design Thank you for taking the time to consider this application Sincerely, Wanda Mayfield Unit Suggested Answers 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 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 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 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 B end user in mind Sometimes they get caught up in the 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? A software crisis B Software reuse A: In school, I did studies on dialogs between users and A approach B usage systems A White-box reuse B Black-box reuse B: And what place you think dialogs have in software A Compositional B Generative design? A: They’re very important The best software in the world is Suggested Answer useless if users don’t know how to interact with it correctly Black-box reuse saves engineers time because they not B: And you have a degree in computer programming? need to make modifications to the code A: That’s correct Suggested Answer 1F 2F 3T To whom it may concern: reusing some software source codes that I am very interested in your open position for a user interface some black-box reuse might not be designer I have worked in software design for five years I’ve time on the project ad hoc application primarily worked in writing primitive code I would really like to write more sophisticated programs I am also very interested 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 Answer Key A: Would you recommend white-box reuse? ADL Domain analysis B: No You’ll save more time if you can find codes to reuse intermediate product application generator without having to change them code scavenging transformation system A: Is it possible to black-box reuse without paying for the VHLL MIL software pieces? instantiate program library B: Yes, but I’ve never tried that template middleware A: I can ad hoc application if I have to, but I’d prefer not to skeleton B: It would take more time than black-box reuse, but I think it Suggested Answer would still save you time in the long run Domain analysis programs search for information in existing pieces of code They this work automatically so that Suggested Answer engineers not have to it manually Hi Taylor, 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 of transformation systems task they perform me a lot of time! I would recommend doing black-box reuse transforms their code explain middleware This means that the codes you use don’t need to be modified connects individual applications 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 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 B: MILs provide a general plan on how an application will be Suggested Answers structured A: But why are they necessary? 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 Suggested Answer rising demand for new software and applications 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 Suggested Answers 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 Answer Key program Then, they create error messages for the user in 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 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 error of a system Suggested Answers 1T 2F 3F D C 3G 4F A E A 2B B A B A H B I Suggested Answer When a program is not fault-tolerant, it can malfunction Software that malfunctions can be frustrating or dangerous 1C exception domains yet your reliability checks make a program 2A accurate error probabilities to that stage in the long run 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 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 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 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 1A 1A 2E 2D 3F 4B 3C 5C 6D A family B city A state B individual A integrated environment B process-centered environment A workbench B toolkit Suggested Answer Engineers at the company use language-centered environments They also use integrated environments and process-centered environments Answer Key 33 Book Answer Key 1T 2T 3F the user scale going to be family level need a lot of engineers selecting the environmens kind of environment Suggested Answer F T F B A D E C F Reserved checkout Back-end programming environment UNIX Unreserved checkout visual programming environment A: Did you finish the specifications for the new project? B: I’m just putting the final touches on them now 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 you think you’re going to go C with? the engineering staff the reserved checkout A: We need really good tools for our engineers the CASE software on the program files B: So you think you will use an integrated environment? a new UNIX program 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 you think you can get the environment set up??8 Suggested Answer A: Probably within the next few weeks 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 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 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 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 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 not include MWB It also has 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 early phases of software development Suggested Answers Configuration management prevents flaws by creating multiple copies of a program If a mistake is made in a 34 Answer Key Book Answer Key program, these copies can be accessed In some 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 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 This means that new versions of software are tracked with Suggested Answers a linear numbering system There are many management styles One is the 1F 2T T commitment style In this style, decisions about a project are decided by the overall goals of the project This configuration items approve means that engineers not need to consult with their CCB change request managers every time a decision needs to be made corresponding configuration management Another style is the separation style This style is parallel development A flaw B delta designed to promote maximum efficiency within a A incorporate B retrace corporation Another style is called task directedness A Change-oriented B Version-oriented This style focuses on the tasks that need to be achieved 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 1D 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 changing the baseline to approve it before this flaw of the parallel development merge the fixed version end of the week 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 1T 2F 1D 2H 3B 4A 3F 5F 6C 7E 8G chief programmer team SWAT team specialize in open structured team unit Suggested Answer The woman suggests that the company use: commitment style, integration style, or relation style She also recommends using chief programmer teams 1D 2C divide the employees the most efficient Answer Key 35 Book Answer Key units of employees create a hierarchical structure with defined use chief programmer 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 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 1T 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 Suggested Answers 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 IEEE Standard for Quality Assurance Plans Quality control key practice TQM key process area A Quality factors A ISO 9001 A conform to A common feature B Quality criteria B CMM B improve B maturity level Suggested Answer The company can improve its quality control by focusing on quality criteria instead of quality factors 1C on quality control find some problems if we redefine 2A notice any other quality factors about the quality criteria 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 Answer Key Suggested Answer 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 Suggested Answers over budget 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 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 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 1F 2T 3T Suggested Answers 1B 2A A base formula A KLOC 3H 4E 5J 6C 7D 8F 9G 10 I B man-month B budget 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 2A budget and cost reports on which algorithm good news first according to the Putnam model barely behind schedule have a higher KLOC 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 Answer Key 1H 2F 3G 4C A Gantt chart A product certainty A allocation problem 5A 6B 7D 8E all employees know what kind of behavior is expected of them 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 not work with integrity, the client will likely not receive the best product possible B PERT chart B Process certainty B realization problem Suggested Answer Degree of certainty is a scale from high to low It is measured by product certainty, process certainty, and resource certainty 1F 2F 3T workshop on project management Did they give degree of certainty last topic identify risk factors early talked about PERT charts 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 Suggested Answers 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 A D B C F E A 3B A 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 1F 2T 3F 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 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 Unit 13 1D defend your principles protect the best interests meet a deadline make that decision wasn’t tested yet 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 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 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 Suggested Answers 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 When companies purchase software licenses, they are able Suggested Answers to distribute that software Users can gain access to the 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 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 you know about SaaS software license operates under cloud computing they pay distribution of computing and storage prefer pay-as-you-go 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 they pay for that? 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 Working in the educational field Becoming a developer Becoming an architect Joining a professional organization 3I 4E 5H 6A Benefit Promotes critical thinking and problem-solving skills Is an opportunity for professional development Most industries have software development needs Hardware development is an expanding industry Comes with opportunities for networking and career development 7C 8B 9G 10 D Answer Key 39 Book Answer Key developers IEEE analyst’s contractor Educators software life cycle Suggested Answer Professional organizations provide opportunities for networking and career development 1F 2T 3F be a developer might want to you think analyze technology on the side lots of options 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 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 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 Unt Engineer (M): Hey have you got a second? Engineer (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 (M): Hey can you help me with something? Engineer (W): Sure What 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 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 Student (M): Excuse me, could I talk to you for a moment? I have a few questions on software reuse Unit Instructor (W): Sure What 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 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 you think they can 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 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 Engineer (M): How you plan to check the reliability of your Answer Key 41 Audioscripts new program? Engineer (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 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 Engineer (M): Have you finished the specifications for the new project yet? Engineer (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 that right away Engineer 2: What kind of environment you think is best? Engineer 1: Well, we definitely need something that can manage input from a lot of people Engineer 2: So 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 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 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 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 all of this again Unit 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 (M): Did you see the latest quality control report? Engineer (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 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 (M): Hi Shirley Where have you been? Engineer (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 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 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