










Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Material Type: Exam; Professor: Marinov; Class: Software Engineering II; Subject: Computer Science; University: University of Illinois - Urbana-Champaign; Term: Spring 2010;
Typology: Exams
1 / 18
This page cannot be seen from the preview
Don't miss anything!











CS 428 Software Engineering II Spring 2010 May 14, 2010 TIME LIMIT = 3 hour COVER PAGE + 17 PAGES
Print your name and netId neatly in the spaces provided below; print your netid in the upper right corner of every page.
Name:
NetId:
This is a closed book, closed notes examination. You may not use calculators or any other electronic devices. Any sort of cheating on the examination will result in a zero grade.
We cannot give any clarifications about the exam questions during the test. If you are unsure of the meaning of a specific question, write down your assumptions and proceed to answer the question on that basis.
Do all the problems in this booklet. Do your work inside this booklet, using the backs of pages if needed. The problems are of varying degrees of difficulty so please pace yourself carefully, and answer the questions in the order which best suits you. Answers to essay-type questions should be as brief as possible. If the grader cannot understand your handwriting you will get 0 points.
There are 10 questions on this exam and the maximum grade on this exam is 124 points.
Page Points Score 1 8 2 8 3 8 4 8 5 10 6 6 7 8 8 6 Total: 62
Page Points Score 9 6 10 6 11 15 12 8 13 5 15 10 16 4 17 8 Total: 62
CS 428 Final Exam NetId:
2 (a)In lecture, Prof. Marinov discussed the notion that ”Quality is Free”. Explain what it means.
2 (b)What is the difference between failure analysis and flaw analysis?
4 (c)Explain why it is important to keep track of information about bugs found while developing software? Provide two examples of how this information can be used.
4 (d)Code walkthroughs have been shown to be less effective at finding problems than formal inspections. Give two reasons why you might still choose to conduct code walkthroughs.
2 (a)Use cases are not always an effective technique. Describe a situation or system where use cases do not work or cannot easily be used.
2 (b)Students in a softare engineering course are creating a web application that allows pho- tographers to post their photos for clients to see. While browsing the project’s wiki page, you see the following use case: “Create a database to hold photographs.” Why is this not a use case?
4 (c)You decide to help this group out, and rewrite their use case to show them how it’s done. Create two informal use cases to replace the original. Keep them brief.
4 (d)Create a decision table to decide the reimbursement percentage for the following medical insurance scenario. (note: this scenario is from Bill Rogers’ Systems Analysis & Design course at Saint Xavier University)
No charges are reimbursed to the patient until the deductible has been met. After the deductible has been met, the amount to be reimbursed depends on whether or not the doctor or hospital is a ”Preferred Provider.” For preferred providers, Doctor’s office visits are reimbursed at 65% and Hospital visits are reimbursed at 95%. For other providers reimburse 50% for Doctor’s Office visits or 80% for Hospital visits.
2 (b)As mentioned in lecture, the mail transport agent qmail has had no security failures. What major architectural feature of qmail has helped keep it secure?
2 (c)Name two common mistakes made when developing software that lead to security holes.
2 (d)Why is security more than just a technical issue? Explain, and provide an example of a non-technical issue that must be taken into account to ensure a system is secure.
4 (a)How does a three-tier architecture separate content from presentation? What is an ad- vantage of separating content from presentation?
2 (b)Why can it be easier to maintain web applications than other types of software?
2 (c)In some ways, today’s web applications resemble the mainframe programming model that died off long, long ago. Why, according to The Other Road Ahead, has this programming model come back?
2 (d)According to Joel on Software, when is a user interface well designed?
2 (e)Is giving users more choices always a good approach for user interface design? Why or why not?
2 (f)List two techniques for user interface design that reduce what the user needs to remember.
2 (g)What user interface feature is the Command pattern most often used for?
2 (h)Why is it usually a bad idea to create a unique, innovative user interface for a program?
2 (i)Give an example of a user interface affordance.
4 (a)As presented in lecture, diversity in project teams can be valuable. For two different types of diversity, discuss how diversity along these lines can be beneficial on a project.
2 (b)What is the most important advantage that using version control provides for a software development team?
2 (c)Recall the guest lecture on database and anonymization. Suppose that you anonymize a database once for some attributes. Suppose that you then change the database. Would it be a good idea to anonymize it for a different set of attributes? Explain your answer. A simple “yes” or “no” doesn’t suffice.
3 (d)Describe a risk that was associated with your group’s project at the beginning of the semester. Describe how your group dealt with this risk.
2 (e)A function in lambda calculus, sometimes written f = λx.T (where f is the function name, x the parameter, and T the body), is called a lambda abstraction because it abstracts over something. What does it abstract over?
10 (a)Show the class diagram for the digital library system such that it can support implemen- tation of all the features for the first iteration. Be sure to include all the details (instance variables, methods, relations between classes) necessary to implement the main functional requirements. You do not need to include accessor methods in the class diagram.
4 (b)Consider the following scenario:
Professor Biff Lattimer wants to better understand the impact his research is having in his field. As part of his efforts to do so, he wants to use the digital library system to automatically compile a list of all the papers that have cited his papers.
Write a casual use case that describes this scenario using the digital library system.