Fall 2009 Midterm Exam CS 319 Object-Oriented Software Engineering
Fall 2009 Midterm Exam CS 319 Object-Oriented Software Engineering
a) The term software engineering was coined in 1968 as a response to the desolate state of the art of
developing quality software on time and within budget.
b) The UML stands for Unified Modeling Language and is visual language used during several phases /
most phases / analysis and design phase of the software engineering process.
c) Use cases are created as part of the functional / use case model, while class diagrams are part of the
object model, and state charts are part of the dynamic model.
e) Ideally, requirements analysis (should / should not) consider the implementation technology.
g) Activity diagrams can be a useful adjunct to writing use cases, especially for business use cases that
describe complex workflows involving many parties and concurrent actions.
h) A role defines a set of technical and managerial tasks that are expected from a participant or team.
i) Any work product that is to be delivered to the client is called a deliverable. Work products are not
visible to the client are called internal work products.
j) Last but not least, my name is written only on the last page of this exam paper as instructed.
public class Y {
…
boolean doB(X x) {
Y y2 = new Y();
x.doD(y2);
…
return flag;
}
void doE() {…}
}
Consider an online reservation system for a bus company. The bus company includes several buses and
realizes trips to different cities. Each bus is identified by its plate number and a separately assigned bus
number. The trips are based on a predefined schedule and stop at predefined bus stations. Each bus can
have only one trip per day. Each bus includes a driver and one hostess. For long trips, the bus will have
breaks at service and rest areas. There are two types of trips, normal trips and express trips. Express trips do
not stop at intermediate stations and get faster at the destination.
a) [15 pts] Draw a use case diagram for describing the functional requirements of the above system.
b) [4 pts] Define a stakeholder which is not an actor in this use case diagram.
All the stakeholders who are not end-users including Company Manager, Project Manager,
Customer (not an end-user), and Tester
c) [4 pts] List and justify three non-functional requirements that could be important for the above
system.
Time Performance: timely response by the system to the passengers is important.
Cost: the new system should not be very expensive; otherwise the budget cannot be
justified.
Reuse: it’d be nice for the developer to reuse this system for other reservation systems.
Other possible non-functional requirements include Adaptability and Security.
d) [4 pts] Give two examples of conflicting non-functional requirements. Explain how you would
resolve the conflict.
Performance vs. Adaptability or Adaptability vs. Cost or Security vs. Performance, etc.
Possible Resolution: Identify the stakeholders for which the non-functional concerns are
required. Prioritize stakeholders and weight the non-functional concerns. Discuss with
stakeholders to come to an agreement.
Another way to resolve the conflict is by looking at the design goals as they may dictate which
criteria is more important.
f) [10 pts] Draw a state diagram for describing the details of the Seat object of the above system.
Passenger Ali lists all scheduled busses from Ankara to Istanbul on December 31, 2009. He
selects the one that departs at 13:00. The system displays all the seats with their status. Ali
chooses seat numbered 9, which happens to be free. He completes the reservation by entering
his contact information. We assume Ali had already logged on to the system prior to this
scenario.
Mini Dictionary:
to coin deyim bulmak, bir söz icat etmek
conflict çelişki, çakışma
to convey to communicate
desolate terkedilmiş
hostess yardımcı, yardım eden
plate plaka
to rest dinlenmek
skeletal iskelet gibi, çatısal
sloppy yarım yamalak, baştan savma
I hereby affirm that the work submitted in this examination is my own exclusively.
Name & Signature: Kıvanç Dinçer Uğur Doğrusöz Markus Schaal Bedir Tekinerdoğan