Page 62 - DCAP608_REAL TIME SYSTEMS
P. 62

Unit 5: Real-time System Dependencies




             object editor for modification of attributes. The object editor is parameterized with the  Notes
             type of object in the model. The code for drawing the object model, for the object editor,
             and for extracting the help information, is all part of the framework, and can be reused by
             other tools in the TTP-Tools family. This framework was of great help when building the
             node configuration tool TTP-Build, which uses a network  configuration generated by
             TTP-Plan to produce the configuration of an individual node in the network.
             Productivity of Programmers Using the Framework

             Meanwhile, new tools were built using the existing framework. A programmer new to
             both Python and our framework was able to build a new configuration tool for the LIN
             protocol, a product that is now called LIN-Plan, within three months. The tool was initially
             built for a first-time customer and is now generally available. It will soon see its second
             release.
             Tools not Written in Python
             The  good experiences  with the  Python-based tools  are confirmed  by other  projects
             originally coded in C++. The development of TTP-Load, the download tool, started in
             1999. We decided to write this tool in C++ because the tool had to use a low-level Ethernet
             driver in order to communicate with an Ethernet-to-TTP gateway, called a monitoring
             node. The protocol for communicating with the monitoring node at the time used raw
             Ethernet frames.
             The year 2001 saw two major changes. A new TTP controller was introduced, and we faced
             a  redesign of TTP-Load because the download protocol of the chip  had changed, and
             support of different download targets was difficult. Communication over raw Ethernet to
             the monitoring node used a hard-to-maintain driver that needed constant adaptation to
             new Windows versions. Instead of porting the driver to new Windows versions at that
             time Windows NT was supported but we had urgent requests for Windows 2000 and XP
             was already visible on the horizon we decided to use standard internet protocols (UDP for
             the old monitoring node and TCP for the new one) for communication. For TTP-Load,
             which does not have performance requirements for the user interface, it was decided to
             rewrite the tool from scratch, entirely in Python. This was done by one person not familiar
             with the framework within six weeks.
             In our experience, programming productivity is substantially higher with Python than
             with C++. This is substantiated in detail in a paper presented at OSCON 1999 by one of our
             developers.
             Today, five people are involved with the daily development of our Python-coded tools.
             Relying on our Python framework, we are able to quickly implement new features, and to
             adapt the tools to newly available hardware on short notice.

             To summarize, with Python we were able to produce a mission-critical set of software
             products success of TTP as a communication protocol depends on the availability of high-
             quality configuration tools within a short time frame. The code is very easy to maintain,
             and recoding in Python a whole medium-sized project proved an easy task too. Overall,
             using Python has led to a successful product line with an ever-growing number of satisfied
             customers.
             Questions:

             1.  Describe the significance of Python in TTTech.
             2.  What is the scope of Python?

          Source:  http://www.python.org/about/success/tttech/



                                           LOVELY PROFESSIONAL UNIVERSITY                                   57
   57   58   59   60   61   62   63   64   65   66   67