Ph.D. - geht es zur Homepage der Informatik des Fachbereiches 3 ...
Ph.D. - geht es zur Homepage der Informatik des Fachbereiches 3 ...
Ph.D. - geht es zur Homepage der Informatik des Fachbereiches 3 ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
8.6. Implementation<br />
8.6. Implementation<br />
The previous sections in this chapter d<strong>es</strong>cribed the d<strong>es</strong>ign of the openETCS domain framework<br />
based on UML diagrams. Since UML is a very general d<strong>es</strong>cription formalism for objectoriented<br />
programming languag<strong>es</strong>, those typically cannot provide certain information about<br />
the implementation in a concrete programming language. Mainly, two strategi<strong>es</strong> exist for<br />
implementing a software d<strong>es</strong>ign defined by UML:<br />
1. manually implement the complete d<strong>es</strong>ign<br />
2. generate as much as possible code from the UML model and manually implement missing<br />
parts<br />
As already illustrated in Chapter 3, general modelling formalisms r<strong>es</strong>pectively meta models<br />
normally do not provide enough abstraction to enable full code generation. However, strategy 2<br />
is anyway preferable because the workload is in any case smaller compared to a complete<br />
manual implementation.<br />
As for this work the tooling for the domain framework development is not of main inter<strong>es</strong>t,<br />
a d<strong>es</strong>cription of this specific tool chain is omitted.<br />
8.6.1. Programming Language and Target Platform<br />
According to Section 8.5, the domain framework is the PIM of the openETCS architecture and<br />
should be (mostly) platform independent. Hence, the C++ programming language is chosen<br />
for the implementation because it provid<strong>es</strong> object-oriented programming (corr<strong>es</strong>ponding to<br />
Req.6) and is suitable for technical applications. Since the goal of this case study is primary a<br />
proof of concept, the new C++ standard also called C++11 [7] is already used, but which is<br />
currently in draft status. Neverthel<strong>es</strong>s, it provid<strong>es</strong> certain advantag<strong>es</strong> for the domain framework<br />
implementation. For example, the implementation must <strong>es</strong>tablish a sample system (d<strong>es</strong>cribed<br />
in Section 7.6) with a constant sample time. This is related to the scheduling of the executing<br />
platform, which normally refers to an operating system. Since interfac<strong>es</strong> to operating system<br />
functionality, e.g. system calls [77], generally differ much, acc<strong>es</strong>s via C++ objects, methods,<br />
and functions [7, Ch. 30] that are available for any platform providing a C++ compiler is<br />
preferable. The gcc or rather the g++ [33] compiler is used for the software development of<br />
the openETCS case study because it is developed un<strong>der</strong> a FLOSS license and supports since<br />
version 4.4.7 the draft standard C++11. Although the choice for the target platform should<br />
not be relevant for the PIM, the usage of Linux [47] provid<strong>es</strong> the integration in a platform that<br />
is also FLOSS.<br />
Obviously, not all elements of the domain framework implementation can be discussed in<br />
detail. Therefore, the following subsections discuss certain parts of the domain framework<br />
implementation that are of high<strong>es</strong>t relevance and/or inter<strong>es</strong>t. The full software reference of the<br />
openETCS domain framework is located in Appendix D.<br />
Before proceeding with concrete implementation exampl<strong>es</strong>, it is noted that all class<strong>es</strong> of the<br />
openETCS domain framework are located in the ::oETCS::DF C++ name space [79].<br />
149