CSCI 375 Spring 2017: Exams

The final exam format will be one three-hour exam held during the regular final exam period.
Update: The final exam will be held in room 114 in building 315 on Wednesday April 19th 1-4pm

The exam will be open notes and open book, no electronics permitted.

The questions will, by and large, be essay based, and the bulk of the marks for each question will be based on the explanations, justifications, and/or rationale you provide for your answers.

The questions are very open-ended, please base the length/detail of your responses to what can reasonably be described within the framework of 25 minutes per question.

The exam is worth a total of 50% of your final grade,
you must pass the final exam to pass the course.

Examinable material: material which can appear on the exam includes:


Old final exams

Here are three old final exams:


Practice questions:

A collection of practice exam questions is provided below, some were actually used in the exams listed above.

There are enough questions here for roughly two full exams, e.g. broken up as questions 1-8 and 9-15.


Question 1: Project metrics

Pick two of the three project aspects described below, and describe metrics that would provide relevant information for that aspect of a project, how you would gather those metrics, and any potential weaknesses in the approach you have suggested:


Question 2: Development life cycles

One type of suggested alternative to the traditional waterfall software life cycle is "agile software development".

Agile techniques typically emphasize frequent product inspection, user feedback, and product adaptation together with a greater focus on effective teamwork and collaboration skills.

Agile methodologies often use many short cycles, each of which lasts several weeks and makes a small incremental change to the product. A single cycle would generally consist of planning, analysis, design, coding, testing, and user testing - each done in a short burst focusing on the latest change.

With respect to the product for your team project, discuss how an agile methodology would have been better or worse than the approach you used this semester.


Question 3: Testing

Many test plans include, among other things, an explicit list of "Features not to be tested".

Discuss why you would choose not to test certain features of a product, providing examples and justification based on your team project where possible.


Question 4: System Documentation

Suppose you are working for the IT department of a large organization, and the company servers contain an extensive collection of internal software applications, data files, and databases that are used by different people and departments across the company to manage and report on their tasks and activities.

Unfortunately, these have been developed and modified by many different people over the past ten years, and often the supporting documentation is missing, incomplete, or inaccurate.

Your boss has assigned you the task of determining which applications are still relevant and which are obsolete, and developing up-to-date documentation (both for users and for the maintainers) for those applications still in use.

Outline and justify your plan for completing the task, including a discussion of how you plan to figure out how long the task will take you.


Question 5: Changeover/conversion plans

Suppose you were working for the IT department of a large import/export firm. Four months ago, your department deployed a major new piece of accounting software for the agency - running it in parallel with the old system.

The two systems have been running in parallel for the entire time, and - as far as your department can tell - the new system has been working flawlessly since a few minor glitches were ironed out in the first month. However, the head of the accounting department is now insisting on running the two systems in parallel for an entire year, despite the costs and complications involved.

Discuss the problems involved with parallel deployment, and come up with a plan or testing strategy that might either convince the head of accounting that the new system really is reliable enough to complete the switch-over.


Question 6: Scheduling

One of the scheduling/time estimation techniques we discussed was Joel Spolsky's 'Evidence Based Scheduling'. An interesting component of this was to keep track of how accurate every one of your time estimates has been across all tasks and projects. (E.g. task A took 1.7 times the estimate, task B took 1.1, task C took 0.4, etc etc.) These will be your list of 'alpha values'.

An approach to predict the expected completion date for your currrent project could then be as follows:

Make your best-guess estimates for the tasks in the current project

Repeat 100 times:
   Start from your best-guess estimates
   For each project task:
       randomly select one of the alpha list values
       multiply the task time estimate by the alpha value selected
   Perform a PERT analysis of the project using the
       adjusted times to determine a projected completion date

Plot the set of predicted completion dates, e.g.
      |
      |                 x         x
      |       x     x   x x     x x   x
      |   x   x     x x x x x x x x   x     x
      +-----------------------------------------
week:   1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
month:   April    May    June    July   August
The plotted completion dates should give you a good idea of a probably range of completion dates, based on your historical estimation tendencies.

Discuss the strengths and weaknesses of the approach outlined above.


Question 7: Process modeling

The primary technique we discussed for process modeling this semester involved the use of data flow diagrams, or DFDs.

If you were to produce a new model of your team project using DFDs,
(i) what are the core processes you would describe, and why?
(ii) what are the core data flows you would describe, and why?
(iii) what are the core data stores you would describe, and why?



Question 8: Data modeling

The primary technique we discussed for data modeling this semester involved the use of entity relation diagrams, or ERDs.

If you were to produce a new model of your team project using ERDs,
(i) what are the core entities you would describe, and why?
(ii) what are the core relationships you would describe, and why?


Question 9: User guidance

Focusing specifically on user-guidance, discuss how a project team can/should determine when they have provided "sufficient" documentation to accompany a software product.


Question 10: Requirements/JAD

One of the techniques considered for requirements gathering was group workshops (JAD sessions) where one tries to gather together representatives from all the relevant groups for a few sessions of several hours each. In these sessions the group performs brainstorming and analysis exercises to try and clarify what the requirements for the project should truly be.

Assuming your team was to run such workshops for your project,

  1. Discuss who you would select to participate in the sessions and why.
  2. Discuss what exercises/activities you would run in the sessions and why.


Question 11: Closeout

With respect to your own skills, abilities, and work habits, discuss what is the most important thing you have learned from this team project and why it is the most important lesson you have learned.


Question 12: Task scheduling and staffing

The table below indicates the estimated staff time required to complete a variety of tasks, and the dependencies between tasks (e.g. if A and B are listed as immediate predecessors of C then C cannot begin until both A and B have completed).

Time estimates are given in hours, and for each task we show three time estimates: a best case scenario, a worst case scenario, and a probable scenario.

Assume any employee could be assigned to any task for any number of hours without penalty, but no task can be split between more than the listed "maximum staff members".

Answer the following:

TaskBest Case TimeWorst Case TimeProbable Time Immediate PredecessorsMaximum Staff Members
A: Collect requirements 54 72 60 - 2
B: Analyze processes 68 102 80 A 2
C: Analyze data 72 120 92 B 2
D: Design processes 168 240 200 B 2
E: Design data 128 208 168 C 2
F: Design screens 20 36 28 C,D 1
G: Design reports 160 192 180 D,E 2
H: Program 124 152 136 F,G 3
I: Plan tests and document204 308 260 G 3
J: Test and debug 120 200 144 H,I 4
K: Install 52 76 64 J 2

Be sure to clearly identify any assumptions you make



System Description: Timetabling Tool

The proposed system described here will serve as the basis for questions 13, 14, and 15.

The system discussed below is a fictional replacement for VIU's timetabling process, and has two main purposes
(i) to allow the scheduling of courses offered each year (including assigning lecture and lab sessions, instructors, rooms, class sizes, etc), and
(ii) to allow students to see which courses and sections are available, who is teaching them, and how much space is available in each or how long the wait lists are.

The people who use the system, and the ways they use it, are as follows:

You may assume the timetabling data with respect to current size and seats available is automatically updated whenever a student registers in or drops a course.


Question 13: Risk management

Assume VIU is the client, and has hired you as a consultant on the development of a new timetabling process as outlined in the "System Description" above.

Your task is to create a preliminary risk analysis/management plan for them.

Be sure to clearly identify any assumptions you make


Question 14: Data modeling

Assume VIU is the client, and has hired you as a consultant on the development of a new timetabling process, as outlined in the "System Description" above.

Design a logical ERD, complete with several paragraphs of supporting text description, for the proposed system. Be sure to clearly label and identify all entities (including their most important attributes), the relationships between them, and the cardinality of all the relationships.

Be sure to clearly identify any assumptions you make

As discussed in lectures, such ERDs are to model the information used within the relevant portion of the client business process - NOT a description of any planned code/modules/etc.

Question 15: Process modeling

Assume VIU is the client, and has hired you as a consultant on the development of a new timetabling process, as outlined in the "System Description" above.

Design a logical process model (collection of DFDs) for the proposed new timetabling process. Be sure to clearly label and identify all processes, data flows, participants, and data stores, and attach sufficient text descriptions to clarify the nature and purpose of each of these components.

Be sure to clearly identify any assumptions you make

As with the ERDs in Question 14, the purpose of these DFDs are to model the relevant portion of the client business process - NOT a description of any planned code/modules/etc.


Good Luck and Enjoy the Summer!