Skip to main content.

These exams are from prior offerings of CIS 422/522. Some of them were given in-class, and some of them were take-home exams. As you might expect, they tend to reflect what we had read and talked about by the time of the exam.

Midterm, Winter 2007

There are just two questions, and I will reduce the weight of the midterm in grading because it is so late in the term. (On the other hand, I think these are pretty hard questions. I'll be happy if you answer either one of them very well.)

How to turn in

Compose your answers in a text editor of your choice. Keep each answer to no more than 300 words (and less than that may be plenty). Then use the following link to start an email, and paste your answers into the body (as plain text). The first line of your message should be "Exam: Your Name".

[Use this link to send exam email]

Questions

  1. Boehm claims the spiral model is especially suited to large, complex, technically challenging projects. In what ways does it seem less suited to smaller, more routine projects? What parts or aspects of the model might you not want to use if you were managing a small project (say, a couple of months for two or three people), and why?
  2. Herbsleb and Grinter note several reasons that informal communication is needed to augment formal documentation of software design, and they describe obstacles to informal communication posed by physical and cultural separation of developers.

    Temporal separation (that is, separation in time) presents another set of challenges. For example, one often needs to adapt a piece of software that was written by people who have left the organization. Temporal separation cannot be overcome using the practices recommended by Herbsleb and Grinter (e.g., we cannot use time-travel to bring in a developer from the past for a face-to-face meeting in the present). Can you think of any other approaches that might help? (I'm not looking for miraculous cures here, just anything that might help.)

Final exam, Winter 2007

These questions are rather open-ended, but they do not require long answers. A single brief paragraph of a few sentences should be enough. Think more and write less.

  1. Describe very briefly one way in which modular design can be bad for performance and one way in which modular design can be good for performance. (Hint: Don't say that procedure or method calls are expensive, because a good optimizing compiler can often avoid that cost.)
  2. We've talked about recognition being easier and less of a memory burden than recall tasks, particularly for infrequent users. Other things being equal, then, it would seem like we would always want to replace recall tasks with recognition tasks, even for frequent users. However, for frequent users we try to make interaction efficient by minimizing the number of required actions (e.g., keystrokes and mouse clicks) and responses (e.g., page transitions). Why do recognition tasks often require more actions and responses than recall tasks? Give an example.
  3. Suppose your organization is using a Koala-like architecture to integrate a large number of software components in the driver control panel of an automobile (e.g., radio and CD player, fuel gauge and trip calculations, climate control, etc). Many of the components will be developed by other companies under sub-contract. For example, Toshiba and Samsung will each produce software components conforming to the same Koala component interface specifications to control their respective automobile CD players . Your job is to plan software test and analysis activities through development of the driver control panel of a new car model. How will you exploit the Koala-like architecture for this purpose?

Midterm, Fall 2007

There are just two questions. They require some thought, but your answers should be brief. If you have been reading, attending lecture, and thinking about what we discuss, I think you should be able to produce pretty good answers in an hour or two.

How to turn in

Compose your answers in a text editor of your choice. Keep each answer to no more than 300 words (and less than that may be plenty). Then use the following link to start an email, and paste your answers into the body (as plain text). The first line of your message should be "Exam: Your Name".

[Use this link to send exam email]

Questions

  1. Congratulations, you have just been put in charge of a five person development team for an important project. Within hours of the announcement of the team formation, two of the developers who will be part of your team have individually approached you to ask permission to work mostly at home. One of them likes to work from early afternoon until early morning. The other wakes early and does her best work between 6am and 8am.

    What will your policy on work hours and attendance at work be? Explain the rationale for your policy, citing papers we have read (particularly the Herbsleb and Grinter paper) and, optionally, class discussions and project experience. (You don't have to agree with Herbsleb and Grinter, but I want to be convinced that you've understood them.)

  2. One point on which some “agile” processes diverge from conventional wisdom in software engineering concerns design for change. We have discussed anticipated changes as a key consideration in designing the modular structure of a software system. Some agile methodologies, on the other hand, take the perspective that one should design only for the features that are needed immediately, on the grounds that one is unlikely to correctly anticipate which features will be needed in the future. Continuous refactoring (reworking the arrangement of modules and interfaces) is advocated as a substitute for anticipating change in the first place.

    I'd like you to consider this issue with respect to one particular kind of possible change. Your organization is preparing an interactive application for designing disc golf courses. Initially your software will initially be marketed only in the U.S., and will have all textual elements of displays and error messages in English alone. If the application is successful, though, it may be marketed internationally, and adapted to use a variety of languages. What differences in the design do you anticipate if this potential change is considered in the initial design of your application? What are the potential advantages and disadvantages of planning for this change in the original design, versus waiting until other languages in the interface are actually needed?

Final exam, Fall 2008

Advice: Think, organize, write, revise. Organization counts. So does brevity.

For the following questions, your organization is described as follows: Your organization produces software for sports watches with heart-rate monitors, lap timers, and other features for exercise and athletics. You develop software for 2 or 3 new models of watch each year, including both software in the watch itself and supporting software for personal computers (e.g., maintaining and displaying logs of distances run and times). Half of the 50 people in your organization are software developers. The others include secretaries, machine operations staff, managers, and a variety of other support roles. The software developers are divided into three to five project groups, with some movement from group to group as project needs change.

  1. In another paper (not the one we read), Herbsleb notes: “Evidence indicates ... that spontaneous communication and collaboration declines as a function of distance between offices, and the asymptote is near a surprisingly short distance of about 30 meters.”

    Three floors of your building each have 20 small offices and two medium-size conference rooms. In addition, the bottom floor contains a larger meeting room and a cafeteria. Since it is not possible to put all the developer offices in one big room (even if you wanted to), how might you encourage collaboration and communication?

  2. Software developers in your organization use a bug-tracking database. When a bug is found in system testing or reported by a user, a record is entered in the database describing the symptom and its severity. Bug reports may be combined, prioritized, and tracked. The bug database is coordinated with the version control system, so that a set of changes to source files can be associated with resolution of a bug report. You have years of records of these bugs and fixes from previous projects. What are some ways you might make use of them? (I would rather have one or two ideas, carefully worked out, than six or seven superficial ideas just listed.)

  3. The user interface for heart-rate monitors is fairly standard from one model of sports watch to another. Recent advances in sensor technology make possible something really new: Real-time blood chemistry analysis, including glucose, oxygen, and lactate levels. The sensors and analysis circuitry exist now, but it will take several months to shrink them down far enough to fit in a sports watch. Also, a new user interface for displaying these levels needs to be designed and evaluated. You really want to be first to put a highly usable blood analysis sports watch on the market; how will you accelerate development while devoting adequate time to user interface design and usability testing?

Midterm, Fall 2009

One use of global positioning (GPS) technology is in “beacons” to find lost items. Here are two possible beaconing products (one of which is similar to a device already on the market).

RedBalloon

RedBalloon is a GPS aid for finding your car. No longer will you have to remember where you parked at the MegaMall! Using existing cell phone networks, RedBalloon allows you to use a cell phone to indicate the direction to your car in a large parking lot. RedBalloon is marketed for $49.95 + $3.95 per month for up to 100 direction checks. (Disclaimer: RedBalloon devices are not hidden and are not intended for locating stolen vehicles. RedBalloon service may not be available in all areas, depending on cell phone service coverage.)

VirtualFlare:

VirtualFlare is a GPS beacon for lost hikers. This small, light (3 ounce) device won't weigh you down on that epic hike ... just toss it in your pack and, if you're lucky, forget about it until you return home and unpack. But if you need it, you really need it: This little device can relay a call for help, with your exact coordinates, from any position on earth. Its lithium battery will last five years or until it is used. Best of all, it costs only $149.95 for peace of mind, including an online database to post contact information in case of emergency. If you ever need to use the device, you will incur a $300 fee for service and battery replacement; additional fees may be charged if we are unable to reach your emergency contact listed in the database.

You are working in the software division of Garmellan, which designs and produces both the hardware and software of a variety of consumer GPS devices. Both RedBalloon and VirtualFlair projects have recently been green-lighted for development (prices quoted above are target retail prices based on marketing studies and a rough assessment of hardware costs based on other products). You may be assigned to lead the software development team for the RedBalloon project, or for the VirtualFlare project.

In what ways will the way you organize and manage the project be similar regardless of which project you are assigned? In what ways will it differ? Why?

Final exam, Fall 2009

In this class, all student teams were building software systems related to tracking finger movement. Questions about the point-stream (the record of finger positions over time) and finger numbering made sense in that context.

  1. I claim the "point" representation used in the finger tracking project is an abstraction. Which of the following properties make it abstract, and which do not? For each, say "yes" (meaning this is something that makes the point stream "abstract") or "no" (meaning this is not something that makes it abstract, even it may be a good property for other reasons), and give a one or two sentence explanation of your answer.

    1. Points can be recorded by a tablet, or analysis of video, or a Wii remote, and treated the same by tools for analysis and visualization of finger tracks.
    2. When points come from video, they can be in raw coordinates (relative to the video frame) or registered coordinates (transformed to be relative to a map or other frame of reference). Tools for analysis and visualization can work with either kind of points.
    3. The point stream file conforms to standard XML.
    4. In the revised representation (as provided by the Silver Snakes), fingers and other points are represented in the same way.
    5. The finger numbering system ("1" for the right-hand thumb, "6" for the left-hand thumb, etc.) is standardized.

  2. In architectural design, it is conventional to consider not only what changes are likely, but also when and how quickly the changes may be needed. For example, in Koala, many options are fixed at system build time, but some can be changed during program execution. Why not just do away with design-time and compile-time binding of design decisions, and make everything configurable at run-time? Do you see any potential problems with that? (Your answer should be a short paragraph or two.)
  3. Describe one design decision made by you or your team. What were your objectives, what alternatives did you consider, and how did you choose among alternatives. (Please answer in 200 words or less.)