-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathappendix.tex
84 lines (67 loc) · 5.11 KB
/
appendix.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
\appendix
\chapter{Running the Code}
\section{BON Extractor}
The textual \bon{} extractor is a part of EiffelStudio, more specifically, the Eiffel Verification Environment, or \textsc{eve} for short. Therefore, to run the extractor one needs to install\textsc{eve}. An instruction for this can be found at the \textsc{eve} website \url{http://eve.origo.ethz.ch/} or on the attached \textsc{cd} (\textit{EVE Setup.html}). It is important to note that the latest version of \textsc{eve} requires a new version of the Eiffel compiler (EiffelStudio 7.1). This can be found at \url{http://dev.eiffel.com/Downloads} in the beta area.
\paragraph{}
When in \textsc{eve} the textual \bon{} views should show up along side the others as seen in figure \ref{fig:EiffelStudio1}.
\begin{figure}[H]
\centering
\includegraphics[scale=0.8]{images/es1.png}
\caption{EiffelStudio picture 1}
\label{fig:EiffelStudio1}
\end{figure}
Should they not, right click a tool bar to and select "Customize Address Toolbar" as seen in figure \ref{fig:EiffelStudio2} .
\begin{figure}[H]
\centering
\includegraphics[scale=0.8]{images/es2.png}
\caption{EiffelStudio picture 2}
\label{fig:EiffelStudio2}
\end{figure}
A window similar to the one in figure \ref{fig:EiffelStudio3} should pop up. In this window select the \bon{} views and add them to the toolbar. Optionally, move them to the other views.
\begin{figure}[H]
\centering
\includegraphics[scale=0.8]{images/es3.png}
\caption{EiffelStudio picture 3}
\label{fig:EiffelStudio3}
\end{figure}
\section{Type Checker}
The type checker have two dependencies: The \textsc{gobo} library and the EiffelBase2 library. Furthermore the following environment must be set
\begin{figure}[H]
\begin{enumerate}
\item ISE\_PRECOMP - Set by EiffelStudio.
\item ISE\_LIBRARY - Set by EiffelStudio.
\item REBON - The location of the rEBON project.
\item EIFFEL\_BASE\_2 - The location of the EiffelBase2 library.
\end{enumerate}
\end{figure}
To run the type checker, a proper Eiffel environment must be setup. Be sure to have the latest version of the Eiffel compiler and all dependencies. The project can both be compiled through EiffelStudio and command-line. Remember to finalize!
\paragraph{}\noindent
To compile from command line first navigate to the ecf file (rEBON\textbackslash src\textbackslash type\_checker\textbackslash). From here run the following:
\begin{figure}[H]
\begin{center}{\texttt{ec -config tcb.ecf -clean -finalize -target tcb}}\end{center}
\end{figure}
When the project is compiled a "tcb" executable will appear in \newline rEBON\textbackslash src\textbackslash type\_checker\textbackslash EIFGENS\textbackslash tcb\textbackslash W\_code\textbackslash. The tcb binary takes one argument; a bon file\footnote{It will accept more than one bon specification file, but this is untested. Best guess is that it will type check the last file only.}. Thus, to run it simply type (for example for class\_chart.bon):
\begin{figure}[H]
\begin{center}{\texttt{tcb class\_chart.bon}}\end{center}
\end{figure}
If the type checker has a precondition violation in \textit{check\_bon\_specification} it means that there has been a parse error. If the type checker finds any errors it will print the appropriate error message. If the type checker does not find any errors it will say nothing. Anything other than the above suggest that something unexpected has happened, possibly a bug. Feel free to report it!
\import{./}{specification-type-system}
\import{./}{standard-types}
\chapter{Components Not Extracted}
\label{components-not-extracted}
Some elements are not extracted by the textual \bon{} extractor. Below is a list of omitted elements. Any subelement of an excluded are also excluded. The elements are shown as they appear in \cite[pp. 352--359]{walden1995}.\newline\newline
\noindent\textbf{Event\_chart}\newline
In textual \bon{} an event charts purpose is to express important events. As extracting semantics from source code is out of this projects scope, it has been omitted.\newline\newline
\noindent\textbf{Scenario\_chart}\newline
Similar to event charts, scenario charts purpose is to express semantics.\newline\newline
\noindent\textbf{Creation\_chart}\newline
Creation charts could have been included, but it would have been very involving as a lot of further analysis would have been required. This is a possibility for a future project.\newline\newline
\noindent\textbf{Static\_relations}\newline
Similar to creation charts, static relations could have been included, but as with creation charts, it's something for further development.\newline\newline
\noindent\textbf{Dynamic\_diagram}\newline
Since dynamic diagrams, as the name implies, describe a dynamic context, our static analysis would not be able to make sensible dynamic diagrams.\newline\newline
\noindent\textbf{Class\_dictionary}\newline
Class dictionaries could have been included to give further overview over a system, however it was deemed unnecessary due to its similarity to informal charts. Thus, there were more interesting parts of the project to dedicate time to.\newline\newline
\noindent\textbf{Part}
The reason for parts omission was discussed in section \ref{part}.
\import{./}{extraction-example}