This is a take-home exam, due in-class at the beginning of class on February 5. If, for some reason, you are unable to attend class on February 5, you must email Prof. Whitehead your answers in either PDF or Word format by 9:30AM on February 5.
Obviously, a take-home exam depends on trust between Professor and students; you are expected to perform your own work, and not to solicit assistance from other classmates or people. The exam is open book, so you are free to consult any of the course readings, as well as any other materials you find relevant. Standard academic quotation and citation rules apply: if you directly quote someone else's writing, you must cite their work. That said, your exam answers are expected to be primarily your own words.
The textual component of your answers must be typewritten, and handwritten exams will not be accepted. Diagrams may be neatly hand drawn. Proofreading your answers for spelling and grammar is expected, and you will be graded down for significant deficiencies in either.
Good answers will be concise and to the point. Meandering, long-winded answers that contain a mixture of correct and incorrect information will be graded up for the former, and down for the latter.
Read each question carefully, as they often have multiple parts.
All questions are weighted evenly. You are strongly encouraged to use the February 3 class time to work on this exam.
The following background information is used for the first two problems:
Slug Soup Software, a software development company, has just begun development on a software application for mushroom identification. Briefly, the software takes as input a series of digital pictures of either a single wild mushroom, or a clump of mushrooms, and then analyzes those pictures to narrow down the possible set of mushrooms. It then asks a series of questions until the mushroom is identified, or it has run out of questions. It then displays the mushroom's identification (or lists the set of possible mushrooms it could be), and supplemental information about the mushroom, including its toxicity.
While Slug Soup Software has identified a market niche for this software among amateur mushroom collectors, there is no one working for the company that has deep knowledge about mushrooms. Furthermore, since some mushrooms are deadly, the mushroom identification software is safety critical - misidentification of a mushroom would mean that person would definitely not upgrade to the next version.
Furthermore, there is some uncertainly over the exact function of the software. While mushroom identification is important, it may also be desirable to use the software as a reference, directly looking up the characteristics of individual mushrooms. People may wish to not enter pictures at all, and just answer questions to identify a mushroom. Collectors may want to add their pictures to the entry for a particular mushroom. Finally, it's not clear that it is possible to uniquely identify all mushrooms based on a set of questions.
While all the developers for the project are very experienced, the project manager is less so, having just been promoted from a software developer position. The manager has a strong understanding of software engineering, but little management experience.
1. Based on the description given above, identify two risks faced by Slug Soup Software as they embark on this project. For each risk, provide:
(a) a brief description of each risk,
(b) a description of the severity of the risk,
(c) a brief explanation of how Slug Soup could manage the risk.
2. a) Which software development process (lifecycle) best meets the needs of Slug Soup Software for the mushroom identification project? Why?
b) What software development process is a poor fit for this project? Why?
3. A friend of yours is going to a video rental store, and you would like them to rent a movie you both can watch. Now, you'd normally just tell your friend the names of a few movies that have just been released. But, since this a question about requirements in a Software Engineering course, and since stating the exact title is really providing "how" information, and not "what" information, we won't do this. Too easy. Instead, the next few questions will ask you to describe requirements that would lead your friend to pick a movie that you would enjoy watching.
Your should assume that your friend has not already seen the movies they are selecting. However, they can read the box, and can recognize moderately famous actresses and actors. The workers at the video rental store will also let your friend watch the first five minutes of the movie. Your answers should depend on the properties of the movie, and not the title, so no requirements like "the movie title must have the common name for arachnids."
First, think of a specific movie that you hope your friend will rent.
The rest of the questions will ask you to write requirements describing this movie.
(a) What movie did you pick?
(b.1) Give one requirement about the movie that is overly precise. That is, the requirement is so detailed that it would either be impossible, or extremely tedious to test to see if the movie meets that requirement.
(b.2) Describe why the requirement is too precise.
(c.1) Give one requirement about the movie that is ambiguous. That is, each requirement describes the movie you have in mind, but also describes other movies (and hence your friend might pick the wrong one).
(c.2) Describe why this requirement is ambiguous.
(d.1) Give one requirement about the movie that is "just right," not ambiguous, not overly precise.
(d.2) Describe why this requirement has hit the "sweet spot" between ambiguity and over-precision, and is easily testable.
4. The five major project management functions are planning, organizing, staffing, directing, and controlling. Prioritize these management functions, from most important to least important, as they apply to your term project. That is, rank the management functions according to which is the most important for your term project, which is the second most important, etc. Explain your rationale for ranking the items in the order you chose. Note that this question is not looking for a simple rehashing of the activities within each management function, but rather a crisp explanation of their relative importance, which may be based in part on the activites in each function, and in part on their relevance to your project.
5. (a) What are the two most important software qualities for the software you are developing for your term project? Why are these two qualities so important?
(b) What are the two least important software qualities for your project? Why?
Last updated: