Barco Graphics

advertisement
[hier komt het titelblad van Stefan]
SEESCOA PROJECT
BARCO VISIT REPORT
Contents
VISIT DETAILS
2
SUMMARY OF PRESENTATIONS
3
Barco Graphics (BG) presentation
3
Barco Communication Systems (BCS) presentation
6
Barco Display Systems (BDS) presentation
8
EVALUATIONS AND SUGGESTIONS
10
Barco Graphics
10
Barco Communication Systems
11
Barco Display Systems
11
APPENDIX A: SW ENGINEERING METHODOLOGIES AND TOOLS
APPENDIX B: DEBUGGING METHODOLOGIES AND TOOLS
APPENDIX C: REAL-TIME OPERATING SYSTEMS
APPENDIX D: GUI METHODOLOGIES AND TOOLS
1
SEESCOA PROJECT
BARCO VISIT REPORT
Visit details
Location:
Barco Graphics
Tramstraat 69
9000 Gent
Date:
Thursday 10 February 2000, 14.00 - 18.00 h
Agenda:
1. Introduction of Barco Group - Kurt Michels (?)
2. Barco Graphics - Ronny De Loor
3. Embedded Software Development in BCS - Steven Soenens
4. Software Engineering for Embedded Systems in Avionics
Luc Vandormael
5. Conclusions - Kurt Michels (?)
List of participants (Partners):
RUG:
Mark Christiaens
Koen De Bosschere
Michiel Ronsse
[email protected]
[email protected]
[email protected]
LUC:
Karin Coninx
Jan Van Den Bergh
Stefan Verkoyen
[email protected]
[email protected]
[email protected]
VUB:
Theo D’Hondt
Viviane Jonckers
Tom Toutenel
Werner Van Belle
[email protected]
[email protected]
[email protected]
[email protected]
KULeuven:
Yvan Barbaix
Yolande Berbers
Kris Hermans
David Urting
Stefan Van Baelen
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
2
SEESCOA PROJECT
BARCO VISIT REPORT
Summary of presentations
The Barco group consists of six divisions:
Barco Automation (BA)
Barco Machine Vision (BMV)
Barco Projection Systems (BPS)
Barco Communication Systems (BCS)
Barco Display Systems (BDS)
Barco Graphics (BG)
Three divisions (BG, BCS and BDS) had a representative who gave a
presentation about software development in their division. This chapter
highlights these presentations and reflects the insight the consortium
gained in their development process.
Barco Graphics (BG) presentation
Application domain
BG produces all kinds of printing and packaging systems. One application
in particular is presented: the PlateSetter product. It can be compared with
a “huge” network laser printer for printing with high resolution (2400 and
3600 dpi) on large aluminium sheets. The total product consists of a
Windows NT machine and the printer machine that hosts several customtailored hardware boards.
The NT machine:
processes the images
hosts a soft PLC for controlling the robotics
The hardware boards:
control laser heads and other optic equipment using PID
controllers
are connected with the NT machine by means of a direct
TCP/IP connection between the devices.
Typical software characteristics are:
3
SEESCOA PROJECT
BARCO VISIT REPORT
hard real time: interrupt rate of 2500 Hz and a latency of
maximum 30 sec
soft real time: PLC events at a rate of 20 - 50 Hz with an
average of 10 msec
There are no real memory constraints (32 - 64 MB available)
The team consists for 20-30% of software people. The development took
about 10 man years: 4 man years was spent on base level software, 6
man years was spent on application level software. These 4 man years
were due to several integration problems with 3rd party components (RT
kernel, TCP/IP, …).
Software development process
As a preparation for this presentation, the development team of BG had a
meeting for identifying their development process. This was necessary
since BG never explicitly identified their process, so this was an
illuminating experience.
Requirements should come from customer interviews, but since the
customer has no clear picture of what he wants, most of the specifications
are gathered via internal brainstorm sessions. Requirements are
described in use cases that are written down using Word and Excel.
Non standard block diagrams (in pen and paper style) and additional
brainstorm sessions are used for analysis and detailed design. During this
phase an API is defined. In parallel the user interface is created using
Visual Basic. The customer then evaluates this GUI. His feedback
provides extra information concerning the correct functionality and
presentation of the application on screen.
Coding is done mostly in C/C++. A little amount of Assembler is used for
porting the RTOS to the custom hardware. Visual Basic is used for the
GUI and a software package (InControl) is used to program the softPLC.
Testing and debugging is a straightforward process, which reminds of the
“Extreme Programming” technique1. The person who writes a piece of
code also writes dedicated test shells. He thus tests his own code when
he writes it. The prototype evolves towards the finished product by adding
and debugging little pieces and testing them during long day runs.
Integration of code from different authors is done on an ad hoc basis. The
different persons involved, gather around the table and solve the problems
as they arise.
1 “Software Engineering in the small”, IEEE Computer, Vol. 32, No. 10, October 1999
4
SEESCOA PROJECT
BARCO VISIT REPORT
Deployment and version control is done using standard software
packages (InstallShield & ClearCase).
The general conclusion at BG was that they use a sort of spiral model.
Repeatedly and alternating coding and testing until the final product is
ready. There is also no believe that existing CASE tools will increase
productivity. However, an ideal tool description is given. This ideal tool
should allow for:
An integrated development
processors and architectures
environment
for
different
Code generation from state machines
Documentation generation
Memory leak finding
Interrupt service debugging
Variable tracing
Development tools
Coding is done using the following tools:
Microsoft DevStudio
Nucleus EDE
InControl IEC 1131
Visual Basic
ATL (Active Template Library)
Debugging is done with the aid of:
Visual Studio debugger
“print” commands
Reuse and components
There is a basic form of re-use: standard C and C++ libraries and API’s
are used and when during application development pieces of code seem
more general, an ad hoc application driven library is developed.
Experiences with third party libraries are negative: one has to fix problems
at the source code level for a clean integration.
5
SEESCOA PROJECT
BARCO VISIT REPORT
A standard software package (ClearCase) is used for versioning.
In the presentation, BG gives also some definitions for what they see as
components. A component is a collection of routines and classes. It has a
clear interface and is self-supporting, meaning that a component is an
independent unit.
Some examples of useful components are mentioned: board support
packages, communication and GUI components.
Barco Communication Systems (BCS) presentation
Application domain
BCS is active in domains of:
Analog CATV equipment
Digital service distribution
MPEG2 encoders/decoders
Fiber optic supertrunc systems
Broadcast equipment
Network monitoring
Management solutions
This domain is characterised by small, networked devices intended for a
mass market and it has as a consequence a stringent price competition.
These systems need an integrated management system for remote
diagnostics, performance monitoring, fault detection and security policies.
Some of the most challenging evolutions in this domain are:
Growing bandwidth
Open interfaces (Rosa, SNMP, …)
More processing power
Short time-to-market
Bigger development teams with faster development
More complex software designs
Low power consumption and hot insertion
6
SEESCOA PROJECT
BARCO VISIT REPORT
Software development process
The speaker expressed his doubts about a unified software development
process. According to him, every project has a different process, but one
can recognise common phases and activities.
At the early design stage, a small team creates the top-level block
diagrams, which represent the main packages. Per block there exist
several use cases and message sequence charts (MSC’s). This top-level
design is then extensively reviewed and discussed with other persons,
who are sometimes not involved in the project.
When every one feels happy with the design, an incremental and parallel
refinement is carried out. How soon the actual code is written depends
from person to person. Some developers want to dive into code as soon
as possible, others feel more comfortable with additional higher level
refinements.
The overall goal is to have some “visible” results within a predetermined
period of time (e.g. within three months).
Several ad hoc design notations are used, but there is a shift towards a
subset of UML (class diagrams, collaboration diagrams and state charts).
In the future a gradual extension towards use cases and code generation
is planned.
Development tools
Because of the variety of architectures and the lack of good (easy-to-use)
existing tools, only very elementary programming tools are used:
compilers, debuggers, makefiles and custom scripts.
Also importance is attached to programmers guidelines and use of mailing
lists for exchange of information.
Reuse and components
There are cases where code re-use (and even design re-use) can be
applied, but this is not an enforced process and is rather based on the
experience of the project leader and participants. The importance of reuse is recognised though, but it is not applied in general.
The speaker expressed several needs, which can all be tracked down to a
need for re-use and components. So for example they use a RTOS
because of the real-time requirements, but also because of the re-use of
the system code and the ability to plug in third party protocol stacks. A big
problem however with this approach is the difficult integration of several
components and the lack of tools to do this properly.
7
SEESCOA PROJECT
BARCO VISIT REPORT
Barco Display Systems (BDS) presentation
Application domain
Barco Display Systems provides high performance display products for
critical defence and aerospace applications. The Barco Avionics Family
concept focuses on three major parts of the cockpit man-machine
interfacing: the Control Display and Management System (CDMS), the
intelligent Multi-Function Display (MFD) and the dumb Cockpit Head
Down Display (CHDD). The architecture is built around an open and
modular architecture integrated into the general purpose Avionics
Processing Unit, which allows BARCO to adapt the different products to
individual customer requirements. The Avionics Processing Unit houses
all the option boards such as high-end graphics generators, ARINC 429,
ARINC 629, MIL-Std-1553, Synchro/Discrete/Analogue interfacing, Video
RS-170 and PCM-CIA Dataloader. All the option boards are identical for
use in both the CDMS and MFD.
The software must manage various tasks, such as:
Initialisation of the hardware
Communication interaction between the units
Guaranteeing timing requirements of communication protocols
Generation of symbols and pages
Execution of self-tests
Execution of tests on redundant units
The delivered software has to meet several “safety-criticality” standards
and has to be completely predictable (for timing and memory
consumption).
Software development process
BDS uses the V-model development process. This process consists of a
number of phases: System Requirement, Software Requirement,
Architectural Requirement, Low Level Requirement, Coding, Unit Testing,
Module Testing, Integration Testing and System Integration Testing.
These phases are traversed sequentially and validated at the end. The
results of a phase comprise a number of standardised documents.
Each phase has to conform to certain standardised rules and has to be
carried out independently. A lot of interaction with the customer
guarantees that the product will meet its specifications. In addition, the
specifications have to be traceable throughout the whole design and into
the code.
8
SEESCOA PROJECT
BARCO VISIT REPORT
As a consequence, this process model needs a lot of automatisation tools:
code generation, document generation, consistency checking, etc.
Typically, 20% to 40% of the total development time is spent on testing,
about 30% on documentation and only 30% to 50% is spent on coding.
Development tools
This is a list of the used tools at BDS:
CASE Tool (Rose)
Development tool (Apex)
Cross Compiler (Apex or ARTK)
Minimal Ada Runtime Kernel (MARK or C-SMART)
Configuration management (Apex/Summit)
Static analysis (AdaAnalyser/AdaRepair)
Dynamic analysis tool (TestMate/-Cross)
Logic Analyser as Measurement tool
Automated Documentation Generation (SoDa)
Display prototyping / code generation (VAPS)
Reuse and components
There exist many opportunities for re-use:
Re-use of hardware modules gives the opportunity to re-use
control software. These unmodified software modules have to
be integrated
Re-use of a hardware module for a different application makes
it possible to partly re-use low-level software
A similar application can use existing software as a template
(re-use of design)
In a component oriented approach, re-use of the model and code and
documentation is intended. In that case, if one can prove that a
component remains unchanged, it doesn’t has to be individually tested
and documentation can be copied.
9
SEESCOA PROJECT
BARCO VISIT REPORT
Evaluations and suggestions
[inleiding]
Barco Graphics
Strong points
 Good balance between PLC software, dedicated RT processor boards
and standard software for coordination.
 GUI architecture for remote monitoring and diagnostics is maintained.
Possible tracks for improvement
 Introduce a good Software Development Process. This will become
essential at the moment the software gets a higher impact on the total
product.
 Investigate software development and design techniques, such as
architectures, frameworks and design patterns to improve the overall
design.
 Test more rigorously. Integration testing goes further than applying it
only on the prototype product under development.
 Use of design tools helps to improve the Software Development
Process and provides a support towards document generation.
 Improvement of API documentation, including UML models and
precise description of avoids a large number of integration problems.
 Do not neglect security of remote access and diagnostics.
 Improve the re-use of development effort and code by means of
component development and a re-use plan supported by a component
library that contains components having their own requirements,
design, documentation, test plan and version.
 A relaxation of the component definition to allow components to use
other components opens possibilities of developing and reusing
higher-level architecture components
10
SEESCOA PROJECT
BARCO VISIT REPORT
Barco Communication Systems
Strong points
 The speaker’s responsibility is to follow up several projects concerning
embedded system development. This has the advantage that
knowledge gained from one project can influence other projects.
 Good architecture of management interfaces: remote configuration,
monitoring and diagnostics integrate easily with system core
Possible tracks for improvement
 Introduce a structured re-use model. This increases the probability of
re-using a component, for instance by implementing a (company wide)
global database with descriptions of developed components and
libraries
 Use a standard Software Development Process to enforce more
component-based development, rigid component documentation and
a systematic attentiveness for re-use
 Adopt design tools to improve the Software Development Process and
to provide a support towards document generation
 The Ace Orb (http://www.cs.wustl.edu/~schmidt/TAO.html) is a free
available Object Request Broker, which has been ported to numerous
Operating Systems (including some RTOS). This link is given in reply
to the speaker’s request for links to real-time ORB’s.
 A product family SW development approach, having a common
architecture but creating diversification based on component type
variations is be interesting for certain application domains dealing with
SW for related products. [references to Linda Northrop - Carnegie
Mellon]
Barco Display Systems
Strong points
 Very elaborated and rigid software development process (V-model)
 The V-model implies a rigorous test plan
Possible tracks for improvement
 No explicit modelling of real-time constraints. Guaranteeing deadlines
is then a process of trial-and-error. Annotating Message Sequence
11
SEESCOA PROJECT
BARCO VISIT REPORT
Charts with timing information is a first step in modelling these
constraints.
12
SEESCOA PROJECT
BARCO VISIT REPORT
Appendix A: SW Engineering methodologies and tools
[pointers opnemen & relevante artikels in bijlage & verantwoording: deze
lijst is niet volledig, noch zijn we experten in alle opgesomde links. Het is
een market survey die we hebben gedaan en waarvan we denken dat het
voor het bedrijf in kwestie nuttige informatie zou kunnen opleveren]
[Dit blad dient als frontblad: het is bijgevolg niet genummerd. Na dit blad
moeten de copies van artikels/pointers volgen. Let erop dat dit in de TOC
geupdate wordt (mag geen nummer hebben)!]
SEESCOA PROJECT
BARCO VISIT REPORT
Appendix B: Debugging methodologies and tools
[pointers opnemen & relevante artikels in bijlage & verantwoording: deze
lijst is niet volledig, noch zijn we experten in alle opgesomde links. Het is
een market survey die we hebben gedaan en waarvan we denken dat het
voor het bedrijf in kwestie nuttige informatie zou kunnen opleveren]
[Dit blad dient als frontblad: het is bijgevolg (nog) niet genummerd. Na dit
blad moeten de copies van artikels/pointers volgend. Let erop dat dit in de
TOC geupdate wordt !]
SEESCOA PROJECT
BARCO VISIT REPORT
Appendix C: Real-time Operating Systems
[pointers opnemen & relevante artikels in bijlage & verantwoording: deze
lijst is niet volledig, noch zijn we experten in alle opgesomde links. Het is
een market survey die we hebben gedaan en waarvan we denken dat het
voor het bedrijf in kwestie nuttige informatie zou kunnen opleveren]
[Dit blad dient als frontblad: het is bijgevolg (nog) niet genummerd. Na dit
blad moeten de copies van artikels/pointers volgend. Let erop dat dit in de
TOC geupdate wordt !]
SEESCOA PROJECT
BARCO VISIT REPORT
Appendix D: GUI methodologies and tools
[pointers opnemen & relevante artikels in bijlage & verantwoording: deze
lijst is niet volledig, noch zijn we experten in alle opgesomde links. Het is
een market survey die we hebben gedaan en waarvan we denken dat het
voor het bedrijf in kwestie nuttige informatie zou kunnen opleveren]
[Dit blad dient als frontblad: het is bijgevolg (nog) niet genummerd. Na dit
blad moeten de copies van artikels/pointers volgend. Let erop dat dit in de
TOC geupdate wordt !]
Download