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) :
© Copyright 2026 Paperzz