CS/SWE 321 Spring 2012 Mid-term Examination Version A

CS/SWE 321 Spring 2012
Mid-term Examination
Version A
Student Name:___________________________________
Student G#: ________________________
Student Signature for Honor Code:
________________________________
Part 1. Short answer (you may use bullet points)
1. LIST five generalizable reasons why software projects fail. For each reason,
provide one software engineering technique or methodology that could have
prevented that failure. (10 points)
2. LIST three generalizable situations/properties under which you would NOT want
or NOT be able to use XP (6 pts)
3. Imagine we are at time X in our schedule, and our planned value is $25, and our
actual cost at this time is $35. Complete the following items: (10 pts).
a. If we were on schedule, our earned value at time X would be:
________________
b. Can you tell if we are on budget? Circle YES or NO and explain in one
phrase/sentence why:
c. If our earned value at time X is $35, are we on budget? Circle YES or NO and
explain in one phrase/sentence why:
d. If our earned value at time X is $30, are we on schedule? Circle YES or NO
and explain in one phrase/sentence why:
e. Let’s imagine our earned value at time X + 3 is $25. Are we on schedule?
Circle YES or NO and explain in one phrase/sentence why:
4. LIST two unique, generalizable benefits of developing software with an
incremental/iterative approach. (4 points)
5. Complete the following table (10 pts)
Requirement
Functional/Nonfunctional (and why)
The system shall store
usernames and passwords
The user must have
Adobe Acrobat installed
The system must prevent
99% of viruses
The user interface should
be easy to use
The system shall allow a
user to log in
Good/Bad
(and why)
Part 2. Diagrams
1. Draw a UML Class Diagram for the following Restaurant System below. Make
sure you document all variable and method types (arguments and return).
Document your assumptions, if any. (13 pts)
a. A single order is associated with many customers
b. An item must be associated with at least one order
c. An order is associated with one and only one store
d. An item is part of an order
e. An order has a price as well as an order number
f. A customer can exist in the system without any orders
g. An item is a generalization of a food item and a beverage item
h. A food item has an prepared-on date
i. A beverage item can be alcoholic or non-alcoholic
j. An item has an operation to return its name
k. A food item has an operation to return the number of calories it contains
2. Draw a swimlane diagram for the following student record website. Each actor is
underlined below (i.e. should be a column in your diagram). (20 points)
The User enters a username and password. The website then checks to see
whether or not the username and password match, first by retrieving this
(and possibly other) information from the Database. If the username and
password do not match, the website prompts the user to re-enter the same
information. This cycle continues until either the user enters correct information,
or the maximum allowed number of tries (maxTries) is exceeded, in which case
the website sends the user to an error page.
Once the user enters a matching username and password, the website starts a
bookkeeping process that must write to a database file once between the
current time and the time the user is actually logged out of the system by the
website. Note that the User must activate this logout process.
An authenticated User is first presented with a main menu, where they can
choose to search, view their schedule, or logout. After searching or viewing their
schedule, they are always returned to the main menu.
Note that the website is not an actor in this diagram.
(answer on next page)
3. Draw a Sequence diagram for question 2 (the student record system), BUT ONLY
MODEL THE PARTS OF THE DESCRIPTION THAT ARE BOLD. (7 pts)
Part 3. True/False. Justify your answers. (20 points)
1. According to Boehm, “hacking culture” came about in the 1960s as an influx of
non-engineering programmers started to write heavily-patched code.
TRUE
FALSE
2. According to the paper How Natural is Natural Language? How Well do
Computer Science Students Write Use Cases?, “display” is a term that should be
avoided in use cases because it is too technical for some stakeholders to
understand.
TRUE
FALSE
3. According to the paper Investigating the Role of Use Cases in the Construction of
Class Diagrams, using class diagrams to validate requirements derived from other
natural language documents (as opposed to deriving the requirements from the
use cases themselves), led to more complete requirements.
TRUE
FALSE
4. According to the paper JaVis: A UML-Based Visualization and Debugging
Environment for Concurrent Java Programs, deadlock occurs when two threads
are waiting for the same resource.
TRUE
FALSE
5. According to the paper Software Quality Development and Assurance in RUP,
MSF and XP - A Comparative Study, a de-facto standard for software process
models can be created by combining elements from each model that are found
across 50% of the software process models investigated.
TRUE
FALSE
6. According to the paper The Costs and Benefits of Pair Programming, pair
programming reduces the number of defects in code.
TRUE
FALSE
7. According to the paper Scrum to Support Mobile Application Development
Projects in a Just-in-time Learning Context, teams of developers like using
Scrum.
TRUE
FALSE
8. According to the paper Transition from a Plan-Driven Process to Scrum – A
Longitudinal Case Study on Software Quality, using Scrum resulted in more
defects being found than using a prescriptive approach.
TRUE
FALSE
9. According to the DART paper, you can automatically unit test software for
verification against all requirements.
TRUE
FALSE
10. You can transition in a state diagram without a trigger from one state to another.
TRUE
FALSE
Extra credit: List one thing you learned from the paper Software Requirements
Negotiation: Some Lessons Learned by Boehm and Egyed.(this is the paper you
read the first week, but we didn’t have time to go over in class).