Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
6. AUTOMOTIVE INDUSTRY
Car manufacturers are reshaping their products from primarily Design change six months before SOP
mechanical devices into digitally controlled systems. The number
of electronic control systems in every car, from low end to luxury
Long-term quality problems
models, is increasing rapidly. Car manufacturers are moving
towards a systems oriented approach in which a limited number of
suppliers supply fully assembled and tested modular systems. Production costs 10% over target
Specific areas of concern are:
Efficiency. Both pre-release development cost and post- Six months late reaching full production
release operational cost are under ongoing pressure. The capacity
potential to improve operational efficiency, developing the
product right the first time, remains an attractive proposition. 10% of customers lost to competitors
Especially for suppliers, faced with delivering more
functionality for less money, improving operational efficiency
has a high priority. Market introduction delayed six months
160 250
140 Software
Number of official recalls
200
120
100
150
80 Germany
UK
60 100 Software
Hardware
40
50 Hardware
20
0
1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 0
Year
2000 2010
Figure 1. Recalls in Automotive Industry [2] [18]. Figure 3. Expected Growth in Market Volume [20] [24].
Including ‘silent’ recalls, the ones not officially reported, would
probably reveal a more dramatic picture.
7. PARADIGM SHIFT? Regardless of how effective a formal verification technique is, if
we cannot define a clear mapping strategy between the abstract
7.1 Software Engineering and Mathematics formal models being analyzed and the actual system being
What distinguishes engineering from craftsmanship? One major developed, the benefits of the formal verification will remain
characteristic is predictability of outcome. All branches of limited. The lack of such a clearly defined relationship between
engineering, except software engineering, routinely employ the two poses a fundamental barrier to introducing formal
mathematics to verify specifications and designs before starting methods in industry. By the very nature of the applications that
implementation. Most software is not developed this way; except need a more formal approach, the systems being developed are too
in safety critical domains where it may be mandated, mathematics complex to reason about confidently by hand (hence the need for
are not routinely employed when specifying or designing software formal models). The task of verifying that the formal models truly
systems. As a consequence, we have only informal, review based reflect the actual system is similarly complex. By the very nature
methods to examine software designs and specifications for of the problem domain we are considering (complex automotive
completion and correctness before investing in programming. We software), the specialist knowledge required by the domain
have no way of verifying designs for correctness in any formal experts is extensive and application specific; to propose to retrain
and complete way. Software development methods rely almost them at the start of a project to reach the necessary level of
exclusively on testing the implementation in order to determine expertise in the chosen method is not practical. It is necessary to
the correctness of specifications and designs. When testing reconcile the gap between the formal analysis being done on the
software, we must detect and remove specification errors, designs abstract models and the software development process, such that
errors and implementation errors. As a branch of engineering, the necessary feedback can flow accurately between the two in
software engineering is unique in this approach. Over the past 30 both directions.
years or so, a number of formal methods have been developed in
order to apply mathematical techniques to software development.
Yet, formal methods are seldom found in the industrial software 8. CONCLUSIONS
development organizations. Furthermore, many of those who have Despite the increasing demand and complexity of software,
tried formal methods are not keen to repeat the experience. The existing improvement strategies mainly focus on improving the
two principle reasons for this are reviewed. operational efficiency. There is however no indication that any
improvement strategy can result in the performance improvements
Informal requirements versus formal specifications needed, matching the exponential growth of the variety and size
A formal method must start with a formal specification; however, of software products as in the automotive industry. One can still
conventional practice in industry starts with compiling an speak of a software crisis, in the sense that the turning point has
informal requirements specification. This is typically a substantial probably not yet been reached. The typical car manufacturer is
document, running to hundreds or thousands of pages describing likely to become increasingly less predictable in terms of cost,
the required behavior and characteristics of the software. It is a quality and time-to-market. Traditional testing-centered software
key part of the business case supporting the development and is development, with its emphasis on defect detection and removal,
written in business and domain specific terms. Furthermore, this is failing in practice to deliver correctly functioning business-
document is not static; managing changes in requirements during critical and untestable software on time and with required quality.
software development is simply an industrial necessity. So the Automatic source code analysis during development and
requirements specification is a living document that evolves over maintenance is a very fact and accurate solution to support
time. To apply a formal method we must start by developing a software manufacturers improving software quality and
formal specification from the informal requirements specification facilitating software understanding. In addition, it provides
and during development we must be able to keep the formal managers with source code based information enabling them to
specification synchronized with changes to the informal take informed decisions. On top of that, there is the need to focus
specification. Having done this, how do we verify that the formal on defect prevention by adopting an alternative and more formal
specification describes the same system as the informal approach embodying the following two principles: (i) business-
requirements specification? Formal specifications are typically critical and untestable software must be based on designs that are
constructed in a specialized mathematical language and require verifiably correct before a single line of code is written; and (ii)
the use of specialists with an extensive mathematical background software architects and designers must limit themselves to those
and expertise in the method. In practice, it is rarely if ever the case designs and patterns that can be verified correct using the
that the business analysts and domain experts have that expertise currently available tools. Without this paradigm shift, the most
or experience. In short, the only people with the domain important challenge for software development in the automotive
knowledge necessary to validate the formal specification cannot industry in the future will no longer be the satisfaction of new
do so because they do not understand it. needs, but the reparation of damage by the software of today.