\input{../settings/settings}
\begin{document}
\klausur{Software Engineering}{Prof. Dr. Lüttgen}{Wintersemester 11/12}{90}{kA}
\setcounter{page}{2}
\noindent
\large{Proposal for a Rental Car Management System (RCMS)}\\
\small{Note: Where there is a lack of detail in the proposal below, you are permitted to make assumptions.
However, you should clearly state those assumptions you make.}
\\
\\
\large{Background and Context:}\\
\normalsize
The RCMS is a computer-based system providing services tailored to the neeeds of rental car companies including as car-pool management, reservation of cars, scheduling of car transfers (between different rental stations), billing and book-keeping. The RCMS is designed as a centralized system that supplements (and integrates with) existing phone-based reservation systems, and has three types of users: administrators, staff and customers.
\\
\\
\large{System Description:}\\
\normalsize
The main components of the RCMS are a system-internal central database containing all data, a web interface providing online services for the customers, an administration application that is only available to administrators, a general service interface that is only accessible by staff members at rental stations, a billing system for invoice management, and an internal book-keeping system.
\\
\\
\large{Customer Functionality:}\\
\normalsize
Using the web interface, any person at an Internet-ready computer can search the central database for available cars by specifying the desired pick-up date and location, return date and location, and the type of car. All available cars matching the specified criteria are presented to the user along with corresponding rental prices which may include discounts for special rental offers. A car can be pre-booked for a period of up to two weeks by registered customers who have provided valid credit card information. Upon payment, the booking becomes binding and the car will not be offered anymore to customers. If payment is not received within the 14-day limit, the pre-booking is cancelled and the car is made available for rental again. After the return of the car, the system creates a final invoice, including possible surchages and containing any advance payments.
\\
\\
\large{Administration and Service Functionality:}\\
\normalsize
The administration application offers admininstrators the possibility to service and maintain the system as a whole, e.g., to add, remove, or edit cars, to create new staff member accounts, to reset customer passwords, or to access the system's log files. This application is only available on computer terminals at rental stations. The general service interface is only accessible by staff members from computer terminals at rental stations. It provides all services needed to check-out and check-in rental cars and to deal with possible defects, damages or required servicing of the car. It also contains information about cars that need to be transferred to another rental station. The internal book-keeping system accumulates all transactions and generates a report for the fiscal authorities.\\
\\
Most of the following questions refer to the proposal above.
\newpage
\large
\noindent
Question 1: Projekt Blast-Off \hfill[5 + 4 + 4 = 14]\\
\normalsize
1.a Specify (i) one purpose/goal of the RCMS and (ii) the scope of the RCMS.\\
1.b Draw a Stakeholder map for the RCMS, using the template presented in the lectures.\\
1.c Would it make sense to use agile methods for the developement of the RCMS? Support your answer by providing two reasons.\\
\\
\large
Question 2: Use Cases \hfill[8 + 7 + 4 = 20]\\
\normalsize
2.a Draw a use case diagramm for the RCMS.\\
2.b Specify the use case "Place online reservation" in the high ceremony form introduced in the lectures.\\
2.c Conduct a use case realization, restricted to the use case of 2.b.\\
\\
\large
Question 3: Software Design \hfill[8 + 4 + 4 = 16]\\
\normalsize
3.a Evaluate the suitability of all three architectural models presented in the lectures for developement of the RCMS. Justify your answer. Could combinations of any of these models be employed in the RCMS architecture?\\
3.b Name and explain two major principles presented in the lectures, that account for good architectural design.\\
3.c Which design pattern - not architectural pattern - could be used in the detailed design of the RCMS? Justify your answer.\\
\\
\large
Question 4: Verification and Validation \hfill[4 + 3 + 8 = 15]\\
\normalsize
4.a Define the terms verification and validation.\\
4.b Name one formal verification technique introduced in the lectures and briefly explain its rationale.\\
4.c Consider the code listing of function pow below.\\
\begin{tabbing}
int \= pow(int x, int n)\{\\
	\> int \= res = 1;\\
	\> whi\= le(n >  0)\{\\
		\> \> if(n \= \% 2 == 1)\{\\
			\> \> \> res = res * x;\\
		\> \> \}\\
		\> x = x * x;\\
		\> n = n / 2; /* Integer division */\\
	\> \}\\
	\> return res;\\
 \}\\
 \end{tabbing}
What is the minimum number of the white-box test cases for achieving (i) branch coverage and (ii) restricted path coverage when considering up to threee loop iterations? Provide a test suite for both cases.\\
\\
\large
Questions 5: Configuration and Project Management \hfill[5 + 5 = 10]\\
\normalsize
5.a It is possible to conduct a cost elimination for the RCMS based only on the proposal on page 2 of the exam paper? If so, which technique(s) for cost elimination know to you would be appropriate? If not, why is it impossible? Justify your answer.\\
5.b  How can configuration management support the developement process in the case of different customers impose different requirements for their respective RCMS?\\
\\
End of exam paper\\
\end{document}