MIDDLE EAST TECHNICAL UNIVERSITY Name and Student ID

MIDDLE EAST TECHNICAL UNIVERSITY
Department of Computer Engineering
CENG 350 Software Engineering
Spring 2011-2012, Midterm-2 Examination
Q1
Q2
Q3
Name and Student ID:
Duration: 90 minutes.
Closed material.
Q4
Q5
Q6
Q7
Q8
Total
Q1 (15 points). Circle either TRUE or FALSE according to the provided UML statechart diagram.
a) It is not possible to directly transition from Subsonic state to Supersonic state.
TRUE | FALSE
b) The operator can cancel the supersonic flight exercise at any stage and at any time she wants.
TRUE | FALSE
c) The aircraft transitions from Subsonic to Transonic state by speeding up over 0.8 Mach.
TRUE | FALSE
d) The supersonic flight exercise can only be finished after operator’s acknowledgement (ACK 4).
TRUE | FALSE
e) A successful exercise requires a total of 4 acknowledgements (ACK 1-4) from the operator.
TRUE | FALSE
f)
TRUE | FALSE
The pilot needs to run the diagnostic check 2 times during a successful exercise.
g) If the diagnostic check fails, then the pilot needs to slow down the aircraft.
TRUE | FALSE
h) As soon as the afterburners are started, the system transitions to Supersonic state.
TRUE | FALSE
i)
After each successful diagnostic check, the pilot needs to fly for 1 minute and wait for ACK 3.
TRUE | FALSE
j)
After transitioning to Supersonic state, the pilot may choose to conclude the test at any time.
TRUE | FALSE
Q2 (10 points). According to Krutchen’s 4+1 view model of software architecture, which views should be provided to
describe a system (name and also briefly describe each view with 1-2 sentences) ?
Q3 (20 points). Consider the table below. The left column gives a phrase and the right column (to be filled) must give
the most directly associated concept. The concepts to appear in the right column must be picked from the list of
terms provided beneath the table. Every term in this list can be picked at most once.
Phrase
Concept
Building the right product
Can be used to describe logical view of an architecture
Proper architecture for chain of data transformations
Each layer depends on the layer below it
A way of making sure no new bugs/defects are introduced
A technique for separating object state and its presentations
Mapping software components on to hardware components
Testing can show their presence but not their absence
System organization centered around data shared by components
A way of documenting patterns of object interaction
Testing performed by users
Describes subsystems and their responsibilities
Linking requirements to design elements
Keeping track of different versions of modules of a system
Shows how the system reacts to internal and external events
Describes an association between two classes in UML
An approach: models rather than programs are principal outputs
An architecture contains redundancy if this criterion is important
Signatures of services provided by a class or a component
Possible at abstraction, object, component and system levels
List of concepts (sorted alphabetically) :
aggregation , availability , beta testing , class diagram , class inheritance , client-server architecture ,
component architecture , component-based development , configuration management , decorator pattern ,
deployment diagram , dynamic model , error , factory pattern , interface , layered architecture ,
model-driven engineering , model-view-controller pattern , object-oriented design , observer pattern ,
pipe-and-filter architecture , regression testing , repository architecture , reuse , sequence diagram ,
state diagram , stress testing , super-state , system architecture , traceability matrix , validation , verification
Q4 (12 points). Project management proposes that test engineers should be involved in design reviews. What could
be the benefits of this proposal? Any difficulties/problems?
Q5 (11 points). Briefly describe the Client-Server Architectural Pattern and discuss its advantages / disadvantages.
Q6 (11 points). Draw a UML class diagram describing the Observer Design Pattern and briefly discuss which problem
that pattern solves and how?
Q7 (12 points). Suppose you are in charge of testing a pattern matcher. Your task can be characterized as functional
testing of a unit using black box techniques. The pattern matcher must be able to recognize patterns of alphabetic
strings in the form of
(a | b)[0-10]c[8-16]
Notation: Alternation is denoted by |; thus a | b means either a or b. Repetition of some string is denoted by a
superscript [i-j] indicating repetition at least i at most j times, or by a single superscript i indicating repetition exactly
i times. Concatenation is denoted simply by juxtaposition; thus, ab means a is followed by b. Repetition has the
highest, alternation has the lowest precedence. Parentheses can be used for grouping.
Examples
: The strings c10, a10c16, (ab)5c16 and abab2c8 fit the pattern. Pattern matcher returns 1.
Non-examples : The strings babac20, (ab)5ac8 and c10a do not fit the pattern. Pattern matcher returns 0.
You are asked to design a set of test cases to test the pattern matcher. You may assume that interface testing is
already completed, thus, the input string is basically in a processable form. Further, rudimentary input validation is
done; e.g. the input string does not contain characters other than a, b and c. Be reminded that each test case must
have a single purpose (otherwise we cannot localize the defect). Also keep in mind that you have limited resources,
so choose your test cases in a most effective fashion. Please, do not exceed the table boundaries.
TC#
Input string
Expected
Result
Objective
1
2
3
4
5
6
7
8
9
10
11
12
Q8 (9 points). Provide brief information about the following license types.
a) The GNU General Public License (GPL) :
b) The GNU Lesser General Public License (LGPL) :
c) The Berkley Standard Distribution License (BSD) :