\input{../settings/settings}
\usepackage{listings} \lstset{numbers=left, numberstyle=\tiny, numbersep=5pt}
\usepackage{enumitem}
\lstset{language=Java, numbersep=10pt, tabsize=5}

\begin{document}
	 \klausur{Software Engineering for Information Systems}{Prof. Lüttgen}{Sommersemester 2014}{90}{Einsprachiges Wörterbuch}
	 
	 \section{Description}
	 \subsection*{Proposal for a Virtual Scrum Board (VSB)}
	 \subsubsection*{Background \& context}
The Virtual Scrum Board is a computer-based system that provides a virtual Scrum Task Board for a team of software engineers. These engineers apply Scrum for developing software on the basis of user stories, the requirements are represented by user stories and each sprint's development is based on tasks. VSB users can take on the core roles of Scrum, i.e., Scrum Master, Product Owner and Developer. Users can either work locally or remotely with the VSB.

	 
	 Angabe SWT-SEI-B, Software Engineering
im SS14, 13. August 2014




	 \subsubsection*{Story \& Task functionality}
VSB allows users to create and update user stories. User stories are kept in a Product Backlog. VSB also permits users to create and update tasks.

	 \subsubsection*{Task board functionality}
VSB permits users to generate a prioritized Sprint Backlog, to assign tasks to developers, to trace tasks on the task board between the statuses ToDo, In Progress, and Done, and to declare User Stories as completed.

	 \subsubsection*{Remote team functionality}
Users can work remotely with VSB via a simple web interface that visualizes the Task Board. Additional communication between local and remote users is provided externally to VSB by the existing telephone system.

	 \subsubsection*{Metrics functionality}
VSB provides an interface for project Mgmt., e.g., displaying the relation between task and the developers that worked on this task at any point in time. This information is also available to Human Resources, i.e., the personnel department. In addition, VSB providers several algorithms for estimating the current development speed for the developer team.

	 \subsubsection*{Authentification and authorization functionality}

Each user authenticates by providing their login name and password before being assigned the appropriate role to authorize access to VSB's functionality.
\\
\\
\underline{Note}: Where there is a lack of detail in the proposal above, you are permitted to make assumptions. However, you shall always clearly state those assumptions in your answer.

	\newpage
	 
	\section{Q1: Blastoff and Requirements \hfill [15 Marks]} 
		 	\begin{enumerate}

	 	\item[1.1] State the goal of VSB. \hfill [5 Marks]\\
	 	\item[1.2] Provide a stakeholder map for VSB containing at least eight stakeholders. \hfill [6 Marks]\\
	 	
\item[1.3] Describe one realistic non-functional requirement for VSB. Also include its \hfill [4 Marks]
\newline rationale and fit criterion, and name the source of the requirement.\\

\end{enumerate}
	 	\newpage
	 
	\section{Q2: Use Cases \hfill [25 Marks]}
		 	\begin{enumerate}

\item[2.1] Implement the use case "Add New Task" by documenting at least two distinct alternative scenarios in high ceremony format

\item[2.2] For the use case "Add New Task" supply the missing fields required by the high ceremony template introduced in the lectures
List all missing fields and provide reasonable values for each

\item[2.3] Conduct a use case realisation regarding  use case "Add New Task". Apply your knowledge on tasks, user stories and scrum to derive additonal attributes, services, methods and relations between the derived classes
\end{enumerate}
	 	
	\newpage

	 	
	\section{Q3: Design \hfill [25 Marks]}

\begin{enumerate}



\item[3.1]	Discuss the high-level architecture of VSB
		 	\begin{enumerate}[label={\alph*)}]
\item List the names of all four architecture patters pressented in the module
\item Name two of the above patterns, which are appropriate für VSB
\item Justify your decision in b) by referring to the design principals presented in the module
\item For the patterns of a) not named in b) briefly argue why they are not appropriate für VSB
\end{enumerate}

\item[3.2]	Explain the Observer Design Pattern
		 	\begin{enumerate}[label={\alph*)}]

\item Supply a UML class diagram representing the pattern's structure
\item Explain the pattern's behaviour
\item Mention one advantage and one disadvantage of the Observer Design Pattern
\item Propose two different areas in VSB's design where this Design pattern can be applied

\end{enumerate}
\end{enumerate}
	\newpage
	
	\section{Q4: Testing \hfill [20 Marks]}
	\begin{enumerate}
	\item[4.1] Propose a black-box test suite for the following Java method by stating four different test cases. 
		\begin{lstlisting}
	\\returns position of needle in haystack
	int calculateFirstOccurencePosition (char[] haystack, char[] needle)
		\end{lstlisting}
		\vspace{3mm}
\item[4.2] Consider the following Java method:
		\begin{lstlisting}
	int calculateFirstOccurencePosition(char[] haystack, char[] needle){
		int n = haystack.length;
		int m = needle.length;
		for(int i = 0; i<n-m; i++){
			int j = 0;
			while(j<m && haystack[i+j] == needle[j]){
				j++;
			}
			if(j == m){
				return i;
			}
			return -1;
		}
	}
		\end{lstlisting}
	 	\begin{enumerate}[label={\alph*)}]
	 	     \item Draw the control flow graph corresponding to the method above.
	 	     \item Propose a test suite for the above method such that full branch coverage is achieved.
	 	     \item Demonstrate full branch coverage of the test suite in your answer to (b).
	 	\end{enumerate} 
	 	\vspace{3mm}
\item[4.3] Briefly explain the concept of "stub", and mention in which specific context oftesting it is applied.
	 	
	\end{enumerate}
	 	
	 	
\section{Q5: Add traceability to VSB \hfill [15 Marks]}
\begin{enumerate}
\item[5.1] Add traceability to VSB
\begin{enumerate}[label={\alph*)}]

\item Name and describe the four kinds of traceability introduced in the lecture

\item Propose two extensions of VSB in form of two additional requirements which each permits the documentation of a distict kind of traceability. Write down the description of each of the two requirements by a natural language sentence.
\end{enumerate}

\item[5.2] Consider extending VSB for development projects that employ Test Driven Development
	 		 	\begin{enumerate}[label={\alph*)}]
   
	 	     \item Explain the main idea behind Test Driven Development

	 	     \item Propose one extention of VSB in form of a new requirement that supports development projects employing Test Driven Development. Write down the description of the requirement by a natural language sentence.
\end{enumerate}
\end{enumerate}
\end{document}