You are on page 1of 7

CS 30700 Midterm Exam

Friday, March 29, 2013


Name ______________________________
Give a short answer for each of the 25 questions below. Each answer is worth 4
points. These are SHORT answer questions -- It may be possible to answer with
one word, a phrase, a sentence, or at most a few sentences.

Name ______________________________
Chapter 1 -- Software and Software Engineering
(1) Why is Software Engineering almost always a team activity?
Because of the size and complexity of software being produced and the short
time in which to produce it.
(2) Define what Software Quality Attributes are.
Software Quality Attributes are constraints on the design to meet specified levels
of quality.
(3) With what is the Software Quality Attribute named Scalability concerned?
Can the software handle increasingly large volumes of data from the current
configuration up through the largest possible?
Chapter 2 -- Review of Object Orientation
(4) How does the Object-Oriented concept Encapsulation help us in Software
Engineering?
In Encapsulation details can be hidden in classes. I do not need to know any of
the details of what you are doing to develop my part of the project.

Name ______________________________
Chapter 3 -- Basing Software Development on Reusable Technology
(5) What are the biggest arguments AGAINST developing Reusable software?
It costs more and mostly benefits later projects ... not this one.
(6) In a Framework -- explain the difference between a "slot method" and a "hook
method".
A "slot method" is missing (abstract) and must be provided by you.
A "hook method" is optional and can be provided if you like or if you want to
override the default method.
Chapter 4 -- Developing Requirements
(7) How does a Functional Requirement differ from a Software Quality
Requirement?
A Functional Requirement describes what the system should do.
A Software Quality Requirement is a constraint on the design.
(8) How do Use Cases (User Stories) help define the Scope of the system?
The system should be developed to satisfy as many Use Cases (User Stories) as
possible ... and nothing else.

Name ______________________________
SCRUM Software Design Framework
(9) What two questions are answered by the Sprint Planning Document?
What will be delivered in this Sprint?
How will the work get done?
(10) What three questions are addressed in the Daily Scrum Meeting?
What has been accomplished since the last meeting?
What will be done before the next meeting?
What obstacles are in the way?
Version Control
(11) In a Version Control system what does it mean to "commit" code?
The file has been checked out, modified, and is now being returned to the
repository.
Chapter 5 -- Modelling With Classes
(12) If a UML diagram shows that the class Advisor has a 0..1 to * relationship
with the class Student, what does that mean?
Every Advisor advises 0, 1, 2, or more Students.
Every Student has no Advisor or 1 Advisor.
Chapter 7 -- Focusing on Users and Their Tasks
(13) Define Utility and Usability in reference to user interfaces.
Utility -- The system provides the capabilities for users to achieve their goals.
Usability -- The system allows users to learn and to use those capabilities easily.

Name ______________________________
Chapter 8 -- Modelling Interactions and Behaviour
(14) In a State Diagram, what does a black circle represent?
The start state.
(15) In an Activity Diagram what do Swimlanes show?
The partitioning of activities among classes.
Chapter 9 -- Architecting and Designing Software
(16) In software design why is Coupling something to avoid?
When coupling exists, changes in one place will require changes somewhere else.
(17) In software design what is Portability?
Ability of the software to run on as many platforms as possible.

Name ______________________________
(18) How does the Client-Server Architecture contribute to Portability?
You can write clients for new platforms as needed.
Chapter 10 -- Testing and Inspecting to Ensure High Quality
(19) To test Effectively, you must use a strategy that uncovers as many defects as
possible. To test Efficiently, what must you do?
You must find the largest possible number of defects using the fewest possible
tests.
(20) What is the difference between White-box and Black-box testing?
White-box -- Testers have access to the system design. They can examine the
design documents, view the code, and observe at run time the steps taken by
algorithms and their internal data.
Black-box -- Testers provide the system with inputs and observe the outputs.
They can see none of the source code, the internal data, or any of the design
documentation describing the system's internals.
(21) Why is the defect Deadlock hard to detect just by testing?
Deadlock usually occurs due to an unusual combination of conditions that are
hard to anticipate in a test case.

Name ______________________________
(22) What is Regression Testing?
Regression Testing is re-running a subset of test cases after a change is made to
the software.
(23) What is an Inspection and why is this important?
An Inspection is an activity in which one or more people systematically examine
source code or documentation, looking for defects. There is a growing consensus
that it is most efficient to inspect software before any testing is done.
Chapter 11 -- Managing the Software Process
(24) Which type of team works best for the Scrum process: Egoless, Chief
Programmer, or Strict Hierarchy?
Egoless
(25) How do the Waterfall and Agile Software Development Methods differ
concerning determining the system Requirements?
Waterfall -- All Requirements are determined before any code is written.
Agile -- Requirements continue to be determined throughout the project, even
after coding begins.

You might also like