SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
Lean Software
Production and Qualification
      Infrastructures

        Florian Villoing – AdaCore
          villoing@adacore.com



      Grenoble – October 20, 2009
      Valence – October 22, 2009
What is it about?
●   A software production infrastructure
●   A software qualification infrastructure


                                    In a lean fashion!




                                                         2
Lean Software Production




                           3
About AdaCore's products
●   Ada compilation toolchain
    ➔   Compiler (based on GCC), debugger
    ➔   Interfacing with C, C++ and Java
    ➔   2 IDEs: GPS + GNATbench (Eclipse plug-in)
    ➔   Coverage analysis
●   Add-ons: ASIS, XML/Ada, GtkAda, AWS, PolyORB
●   Static analysis tools
    ➔   Metrics computation
    ➔   Stack analyzer
    ➔   Coding standard checker
    ➔   Automatic peer review

                                                    4
What is a compiler?
“A compiler is a computer program (or set of programs)
that transforms source code written in a computer
language (the source language) into another computer
language (the target language, often having a binary
form known as object code).” Wikipedia




                                                     5
Native and cross compilers
●   A native compiler generates code for the same
    machine (the host)
●   A cross compiler generates code for another
    machine (the target)
     native

                          cross



              Host                    Target

                                                    6
Native compilers
●   Different operating systems
    ●   Windows, Linux, Solaris, Mac OS X, HP-UX, VMS,
        LynxOS, Tru64, AIX, IRIX, etc.
●   Different Versions
    ●   Windows XP, 2000, Vista, etc.
    ●   Linux Red Hat 3/4/5, SuSe 8/9/10, etc.
●   Different processors
    ●   x86, x86 64bits, Itanium, SPARC, PowerPC, Alpha,
        PA-RISC, etc.
                                                           7
Cross compilers
●   Host environment (OS, OS version, processor)
    ➔   Linux, Windows, Solaris
●   Target environment (Target OS, Target OS Version,
    processor)
    ➔   VxWorks, PikeOS, ElinOS, Lynx OS, Nucleus OS, etc.
    ➔   VxWorks 5, VxWorks 6, VxWorks 653, etc.
    ➔   PowerPC, ARM, AVR, LEON, ERC32, etc.
●   Run-time system
    ➔   ZFP, Ravenscar, Full, etc.

                                                             8
Combinatory explosion
●   Native toolchains
    ●   OS x OS version x processor = 46
●   Cross toolchains
    ●   Host OS x host OS version x host processor x
        Target OS x target OS version x target processor x
        run-time system = 49




                                                             9
And things are getting more
               complex...
●   New platforms are added each year
●   Few are removed
●   Long-term projects need to be supported for up
    10-15 years

                            How do I deal with that?




                                                       10
Some figures
●   95 different platforms (native and cross)
●   15 independent test suites
    ➢   15000 tests and 10 million lines of code
    ➢   1.4 million tests run each night
●   96 scripts to control the infrastructure
    ➢   About 2300 scripts run each day




                                                   11
How to solve the equation?
●   Adopting a lean strategy
●   Introducing agile tactics


                                Let's move on!




                                                 12
The Toyota Production System

                              TPS

           Jidoka                          Just-in-Time
●   Automatic defects               ●   Making only what is
    detection                           needed, when it's needed,
                                        in the amount needed

                              +
●   Stop the line
                                    ●   Limited stocks with all
●   Identify the problem                parts
●   Andon (problem display          ●   Replace used parts from
    board)                              the preceding process
●   An operator for several         ●   Limited stocks for the
    machines                            preceding process

                                                                    13
Adopting a lean strategy
●   Identify the value
●   Identify and remove waste (muda)
●   Automate
●   Detect defects early
●   Fix the cause of defects




                                       14
The value
●   Provide high quality software
●   Fixed release schedule
●   Provide pre-release versions as soon as
    possible
●   Support new platforms
●   Add new features
●   Add new tools


                                              15
Quality & Open-Source
●   All AdaCore's products are Open-Source
●   It's possible to achieve high quality
●   AdaCore is an active member of the GCC
    community
    ●   We identify a reasonably stable version of GCC
    ●   We run it through our QA process
    ●   We contribute our changes back to the community



                                                          16
Lean testing strategy
●   A fundamental piece toward achieving high
    quality
●   Goals:
    ●   Detect defects as early as possible
    ●   Adopt different testing tactics to minimize risk
    ●   Keep high level of productivity
    ●   Balance the machine load



                                                           17
How to detect defects?
1. Local testing




                                      2. Mailserver



  3. Check-in



                                                      5. Nightly builds


                   SVN


                            4. Continuous Builder
                                                                      18
The mailserver system
●   Email-based interface             Less than 20 minutes!

●   To test patches
●   On a remote machine
●   Incremental build
●   Full testing even on exotic platforms
●   Clean result mandatory before check-in



                                                        19
The continuous builder
●   Every check-in triggers an automatic build
●   Fast machines
    ➔   quick feedback
●   Stop-the-line: should an error be reported,
    immediate attention/action is required
●   Limit the risk of nightly builds failures
    ➔   Delays in intermediate releases delivery
    ➔   More waste, less value
    ➔   Customer satisfaction decreases
                                                   20
Nightly builds
       SVN


                                                   Packaging




             Linux                      Windows    Building




                                                   Testing



Red Hat 5    SuSe 9       XP   Server      Vista             21
Nightly builds
●   For cross platforms
    ➔   We test a different version of the target OS
        everyday
    ➔   Use of simulators
        ➔   More stability
        ➔   Better performances
●   Heavy use of virtual machines
    ➔   Ease maintenance of obsolescent platforms


                                                       22
Lean production infrastructure
●   Shippable software is produced every day
●   Defects are detected early
●   Allows to achieve high quality
●   Allows to deliver intermediate releases quickly




                                                      23
Official releases
●   Only 2 releases a year
    ➢   One major release (January/February)
    ➢   One corrective release (June/July)
●   Customers can plan their own release cycle in
    advance
●   Intermediate releases are still available
    ➢   Provide quick fixes
    ➢   Allows to experiment with new features

                                                    24
Official releases
●   Failed builds are relaunched
●   Manual review of each test suite report
●   Human sanity check of each package
●   Cross toolchains are tested on real boards
    ➢   48h to run the ACATS on some cross platforms!




                                                        25
The release schedule
                      6.2 branch              6.3 branch




                          6.2.2 Release         6.3.2 Release




                    6.2.1 Release         6.3.1 Release




6.2.0 Beta           6.3.0 Beta                      Development branch


                                                                     26
             2009                  2010
New features and known problems
●   New features are advertised to everybody on
    our web site
●   Known problems are listed on the customer
    web interface
●   Improve traceability
●   Provide easy access to workarounds
●   Raises interest in evolution of the technology


                                                     27
Visual management with GAIA
●   Monitor scripts       ●   Everything is stored
●   Monitor machines          in a database
●   Monitor test suites
                          ●   Human-readable
                              weather reports
●   Submit analysis       ●   Use of the django
                              framework




                                                     28
GAIA: How does it work?
Test machines     GAIA Server        GAIA User's Interface




                                DB

                                                       29
GAIA: Test suite overview




                            30
GAIA: Weather reports




                        31
Lean Software Qualification




                              32
Critical software certification
●   Aerospace
    ●   ECSS-E-ST-40C/ECSS-Q-ST-80C
●   Civil Avionics
    ●   DO-178B/ED-12B
●   Air Traffic Management
    ●   DO-278B
●   Security
    ●   Common Criteria
●   Railway
    ●   EN-50126/EN-50128/EN-50129
●   Others...
                                            33
DO-178B/ED-12B
●   “DO-178B, Software Considerations in Airborne
    Systems and Equipment Certification”
●   Last revision: December 1, 1992
●   DO-178C is in the pipeline
●   5 Design Assurance Levels (DAL)
    ●   A => Catastrophic
    ●   B => Hazardous
    ●   C => Major
    ●   D => Minor
    ●   E => No effect
                                                    34
What is in DO-178B?
●   Process oriented:
    ●   Planning
    ●   Development
    ●   Verification
    ●   Configuration management
    ●   Quality assurance
    ●   Certification liaison



                                     35
DO-178B: The Waterfall Model


                               Not very agile...




Source: Wikipedia                             36
DO-178B: The V-Model




                                    Not agile either...
Source: Wikipedia




                                                    37
Certification and Qualification
●   Embedded software is certified
●   A tool is qualified
    ●   As a development tool
        –   Output is part of the airborne software
        –   Can introduce errors
        –   Certification-like process
    ●   As a verification tool
        –   May fail to detect an error
        –   Lightweight process
        –   Tool Operational Requirements
        –   Requirements based testing
                                                      38
Qualification of verification tools
●   A tool may be reused in different contexts
●   Operational requirements may change
●   Different part of the tool may be used in
    different context
●   The tool may evolve
                            Let's do agile qualification!




                                                        39
The qualification machine
●   Based on FitNesse
●   Centralize all qualification artifacts
●   Ensure consistency between requirements, test
    cases and test data
●   Automatic generation of qualification
    documents
                                    It's now easy
                               to add new requirements
                                 and associated tests!

                                                         40
The qualification machine



            Let's see it in action!




                                      41
References
●   Lean Software Development, An Agile Toolkit by
    Mary and Tom Poppendieck
●   Implementing Lean Software Development by
    Mary and Tom Poppendieck
●   Lean Software Strategies, Proven Techniques
    for Managers and developpers by and Peter
    Middelton and Jim Sutton
●   http://www2.toyota.co.jp/en/vision/production_s
    ystem/

                                                  42

Contenu connexe

Tendances

02 - Build and Deployment Management
02 - Build and Deployment Management02 - Build and Deployment Management
02 - Build and Deployment Management
Sergii Shmarkatiuk
 
Las16 309 - lua jit arm64 port - status
Las16 309 - lua jit arm64 port - statusLas16 309 - lua jit arm64 port - status
Las16 309 - lua jit arm64 port - status
Linaro
 
Cyber Security Forum: DARPA's Cyber Grand Challenge. What Happened and What'...
Cyber Security Forum: DARPA's Cyber Grand Challenge.  What Happened and What'...Cyber Security Forum: DARPA's Cyber Grand Challenge.  What Happened and What'...
Cyber Security Forum: DARPA's Cyber Grand Challenge. What Happened and What'...
Tim Vidas
 

Tendances (20)

BUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesBUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
 
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...
 
LCE13: Test and Validation Summit: Evolution of Testing in Linaro (I)
LCE13: Test and Validation Summit: Evolution of Testing in Linaro (I)LCE13: Test and Validation Summit: Evolution of Testing in Linaro (I)
LCE13: Test and Validation Summit: Evolution of Testing in Linaro (I)
 
Kernel Recipes 2018 - 10 years of automated evolution in the Linux kernel - J...
Kernel Recipes 2018 - 10 years of automated evolution in the Linux kernel - J...Kernel Recipes 2018 - 10 years of automated evolution in the Linux kernel - J...
Kernel Recipes 2018 - 10 years of automated evolution in the Linux kernel - J...
 
BKK16-210 Migrating to the new dispatcher
BKK16-210 Migrating to the new dispatcherBKK16-210 Migrating to the new dispatcher
BKK16-210 Migrating to the new dispatcher
 
Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3
 
Kernel Recipes 2018 - A year of fixing Coverity issues all over the Linux ker...
Kernel Recipes 2018 - A year of fixing Coverity issues all over the Linux ker...Kernel Recipes 2018 - A year of fixing Coverity issues all over the Linux ker...
Kernel Recipes 2018 - A year of fixing Coverity issues all over the Linux ker...
 
OpenTuesday: Die Selenium-Toolfamilie und ihr Einsatz im Web- und Mobile-Auto...
OpenTuesday: Die Selenium-Toolfamilie und ihr Einsatz im Web- und Mobile-Auto...OpenTuesday: Die Selenium-Toolfamilie und ihr Einsatz im Web- und Mobile-Auto...
OpenTuesday: Die Selenium-Toolfamilie und ihr Einsatz im Web- und Mobile-Auto...
 
02 - Build and Deployment Management
02 - Build and Deployment Management02 - Build and Deployment Management
02 - Build and Deployment Management
 
Kernel Recipes 2018 - Live (Kernel) Patching: status quo and status futurus -...
Kernel Recipes 2018 - Live (Kernel) Patching: status quo and status futurus -...Kernel Recipes 2018 - Live (Kernel) Patching: status quo and status futurus -...
Kernel Recipes 2018 - Live (Kernel) Patching: status quo and status futurus -...
 
Las16 309 - lua jit arm64 port - status
Las16 309 - lua jit arm64 port - statusLas16 309 - lua jit arm64 port - status
Las16 309 - lua jit arm64 port - status
 
Voxxed Days Villnius 2015 - Burning Marshmallows
Voxxed Days Villnius 2015 - Burning MarshmallowsVoxxed Days Villnius 2015 - Burning Marshmallows
Voxxed Days Villnius 2015 - Burning Marshmallows
 
Headless Android at AnDevCon3
Headless Android at AnDevCon3Headless Android at AnDevCon3
Headless Android at AnDevCon3
 
Cyber Security Forum: DARPA's Cyber Grand Challenge. What Happened and What'...
Cyber Security Forum: DARPA's Cyber Grand Challenge.  What Happened and What'...Cyber Security Forum: DARPA's Cyber Grand Challenge.  What Happened and What'...
Cyber Security Forum: DARPA's Cyber Grand Challenge. What Happened and What'...
 
LAS16-200: SCMI - System Management and Control Interface
LAS16-200:  SCMI - System Management and Control InterfaceLAS16-200:  SCMI - System Management and Control Interface
LAS16-200: SCMI - System Management and Control Interface
 
Agile Software Development & Tools
Agile Software Development & ToolsAgile Software Development & Tools
Agile Software Development & Tools
 
BKK16-106 ODP Project Update
BKK16-106 ODP Project UpdateBKK16-106 ODP Project Update
BKK16-106 ODP Project Update
 
glideinWMS Frontend Installation - Part 2 - Frontend Installation -glideinWM...
 glideinWMS Frontend Installation - Part 2 - Frontend Installation -glideinWM... glideinWMS Frontend Installation - Part 2 - Frontend Installation -glideinWM...
glideinWMS Frontend Installation - Part 2 - Frontend Installation -glideinWM...
 
LAS16-207: Bus scaling QoS
LAS16-207: Bus scaling QoSLAS16-207: Bus scaling QoS
LAS16-207: Bus scaling QoS
 
Kernel Recipes 2017 - Testing on device with LAVA - Olivier Crête
Kernel  Recipes 2017 - Testing on device with LAVA - Olivier CrêteKernel  Recipes 2017 - Testing on device with LAVA - Olivier Crête
Kernel Recipes 2017 - Testing on device with LAVA - Olivier Crête
 

Similaire à Lean Software Production and Qualification Infrastructures

Android Variants, Hacks, Tricks and Resources presented at AnDevConII
Android Variants, Hacks, Tricks and Resources presented at AnDevConIIAndroid Variants, Hacks, Tricks and Resources presented at AnDevConII
Android Variants, Hacks, Tricks and Resources presented at AnDevConII
Opersys inc.
 
Architecture for Massively Parallel HDL Simulations
Architecture for Massively Parallel HDL Simulations Architecture for Massively Parallel HDL Simulations
Architecture for Massively Parallel HDL Simulations
DVClub
 
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
Ron Munitz
 

Similaire à Lean Software Production and Qualification Infrastructures (20)

Unmanned Aerial Vehicles: Exploit Automation with the Metasploit Framework
Unmanned Aerial Vehicles: Exploit Automation with the Metasploit FrameworkUnmanned Aerial Vehicles: Exploit Automation with the Metasploit Framework
Unmanned Aerial Vehicles: Exploit Automation with the Metasploit Framework
 
Leveraging Android's Linux Heritage at ELC-E 2011
Leveraging Android's Linux Heritage at ELC-E 2011Leveraging Android's Linux Heritage at ELC-E 2011
Leveraging Android's Linux Heritage at ELC-E 2011
 
Leveraging Android's Linux Heritage
Leveraging Android's Linux HeritageLeveraging Android's Linux Heritage
Leveraging Android's Linux Heritage
 
Continuous Integration Step-by-step
Continuous Integration Step-by-stepContinuous Integration Step-by-step
Continuous Integration Step-by-step
 
Antifragility and testing for distributed systems failure
Antifragility and testing for distributed systems failureAntifragility and testing for distributed systems failure
Antifragility and testing for distributed systems failure
 
Improving Engineering Processes using Hudson - Spark IT 2010
Improving Engineering Processes using Hudson - Spark IT 2010Improving Engineering Processes using Hudson - Spark IT 2010
Improving Engineering Processes using Hudson - Spark IT 2010
 
Continuous testing
Continuous testingContinuous testing
Continuous testing
 
Android Hacks, Variants, Tricks and Resources ESC SV 2012
Android Hacks, Variants, Tricks and Resources ESC SV 2012Android Hacks, Variants, Tricks and Resources ESC SV 2012
Android Hacks, Variants, Tricks and Resources ESC SV 2012
 
Software Delivery in 2016 - A Continuous Delivery Approach
Software Delivery in 2016 - A Continuous Delivery ApproachSoftware Delivery in 2016 - A Continuous Delivery Approach
Software Delivery in 2016 - A Continuous Delivery Approach
 
Android Variants, Hacks, Tricks and Resources presented at AnDevConII
Android Variants, Hacks, Tricks and Resources presented at AnDevConIIAndroid Variants, Hacks, Tricks and Resources presented at AnDevConII
Android Variants, Hacks, Tricks and Resources presented at AnDevConII
 
Build Automation in Android
Build Automation in AndroidBuild Automation in Android
Build Automation in Android
 
Vm final
Vm finalVm final
Vm final
 
oVirt – open your virtual datacenter
oVirt – open your virtual datacenteroVirt – open your virtual datacenter
oVirt – open your virtual datacenter
 
Adopting agile in an embedded platform Suryakiran Kasturi & Akhil Kumar
Adopting agile in an embedded platform  Suryakiran Kasturi & Akhil KumarAdopting agile in an embedded platform  Suryakiran Kasturi & Akhil Kumar
Adopting agile in an embedded platform Suryakiran Kasturi & Akhil Kumar
 
Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...
Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...
Deploy Multinode GitLab Runner in openSUSE 15.1 Instances with Ansible Automa...
 
Ensuring Performance in a Fast-Paced Environment (CMG 2014)
Ensuring Performance in a Fast-Paced Environment (CMG 2014)Ensuring Performance in a Fast-Paced Environment (CMG 2014)
Ensuring Performance in a Fast-Paced Environment (CMG 2014)
 
Architecture for Massively Parallel HDL Simulations
Architecture for Massively Parallel HDL Simulations Architecture for Massively Parallel HDL Simulations
Architecture for Massively Parallel HDL Simulations
 
Optimizing Performance in Qt-Based Applications
Optimizing Performance in Qt-Based ApplicationsOptimizing Performance in Qt-Based Applications
Optimizing Performance in Qt-Based Applications
 
LCU14 310- Cisco ODP v2
LCU14 310- Cisco ODP v2LCU14 310- Cisco ODP v2
LCU14 310- Cisco ODP v2
 
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)
 

Plus de AdaCore

RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standards
AdaCore
 
RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standards
AdaCore
 
The Future of Aerospace – More Software Please!
The Future of Aerospace – More Software Please!The Future of Aerospace – More Software Please!
The Future of Aerospace – More Software Please!
AdaCore
 
Adaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR ArchitectureAdaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR Architecture
AdaCore
 
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
AdaCore
 
Software Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar TechnologySoftware Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar Technology
AdaCore
 
The Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling SoftwareThe Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling Software
AdaCore
 

Plus de AdaCore (20)

RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standards
 
Have we a Human Ecosystem?
Have we a Human Ecosystem?Have we a Human Ecosystem?
Have we a Human Ecosystem?
 
Rust and the coming age of high integrity languages
Rust and the coming age of high integrity languagesRust and the coming age of high integrity languages
Rust and the coming age of high integrity languages
 
SPARKNaCl: A verified, fast cryptographic library
SPARKNaCl: A verified, fast cryptographic librarySPARKNaCl: A verified, fast cryptographic library
SPARKNaCl: A verified, fast cryptographic library
 
Developing Future High Integrity Processing Solutions
Developing Future High Integrity Processing SolutionsDeveloping Future High Integrity Processing Solutions
Developing Future High Integrity Processing Solutions
 
Taming event-driven software via formal verification
Taming event-driven software via formal verificationTaming event-driven software via formal verification
Taming event-driven software via formal verification
 
Pushing the Boundary of Mostly Automatic Program Proof
Pushing the Boundary of Mostly Automatic Program ProofPushing the Boundary of Mostly Automatic Program Proof
Pushing the Boundary of Mostly Automatic Program Proof
 
RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standards
 
Product Lines and Ecosystems: from customization to configuration
Product Lines and Ecosystems: from customization to configurationProduct Lines and Ecosystems: from customization to configuration
Product Lines and Ecosystems: from customization to configuration
 
Securing the Future of Safety and Security of Embedded Software
Securing the Future of Safety and Security of Embedded SoftwareSecuring the Future of Safety and Security of Embedded Software
Securing the Future of Safety and Security of Embedded Software
 
Spark / Ada for Safe and Secure Firmware Development
Spark / Ada for Safe and Secure Firmware DevelopmentSpark / Ada for Safe and Secure Firmware Development
Spark / Ada for Safe and Secure Firmware Development
 
Introducing the HICLASS Research Programme - Enabling Development of Complex ...
Introducing the HICLASS Research Programme - Enabling Development of Complex ...Introducing the HICLASS Research Programme - Enabling Development of Complex ...
Introducing the HICLASS Research Programme - Enabling Development of Complex ...
 
The Future of Aerospace – More Software Please!
The Future of Aerospace – More Software Please!The Future of Aerospace – More Software Please!
The Future of Aerospace – More Software Please!
 
Adaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR ArchitectureAdaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR Architecture
 
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
 
Software Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar TechnologySoftware Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar Technology
 
MISRA C in an ISO 26262 context
MISRA C in an ISO 26262 contextMISRA C in an ISO 26262 context
MISRA C in an ISO 26262 context
 
Application of theorem proving for safety-critical vehicle software
Application of theorem proving for safety-critical vehicle softwareApplication of theorem proving for safety-critical vehicle software
Application of theorem proving for safety-critical vehicle software
 
The Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling SoftwareThe Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling Software
 
Bounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentBounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise Environment
 

Dernier

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Dernier (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Lean Software Production and Qualification Infrastructures

  • 1. Lean Software Production and Qualification Infrastructures Florian Villoing – AdaCore villoing@adacore.com Grenoble – October 20, 2009 Valence – October 22, 2009
  • 2. What is it about? ● A software production infrastructure ● A software qualification infrastructure In a lean fashion! 2
  • 4. About AdaCore's products ● Ada compilation toolchain ➔ Compiler (based on GCC), debugger ➔ Interfacing with C, C++ and Java ➔ 2 IDEs: GPS + GNATbench (Eclipse plug-in) ➔ Coverage analysis ● Add-ons: ASIS, XML/Ada, GtkAda, AWS, PolyORB ● Static analysis tools ➔ Metrics computation ➔ Stack analyzer ➔ Coding standard checker ➔ Automatic peer review 4
  • 5. What is a compiler? “A compiler is a computer program (or set of programs) that transforms source code written in a computer language (the source language) into another computer language (the target language, often having a binary form known as object code).” Wikipedia 5
  • 6. Native and cross compilers ● A native compiler generates code for the same machine (the host) ● A cross compiler generates code for another machine (the target) native cross Host Target 6
  • 7. Native compilers ● Different operating systems ● Windows, Linux, Solaris, Mac OS X, HP-UX, VMS, LynxOS, Tru64, AIX, IRIX, etc. ● Different Versions ● Windows XP, 2000, Vista, etc. ● Linux Red Hat 3/4/5, SuSe 8/9/10, etc. ● Different processors ● x86, x86 64bits, Itanium, SPARC, PowerPC, Alpha, PA-RISC, etc. 7
  • 8. Cross compilers ● Host environment (OS, OS version, processor) ➔ Linux, Windows, Solaris ● Target environment (Target OS, Target OS Version, processor) ➔ VxWorks, PikeOS, ElinOS, Lynx OS, Nucleus OS, etc. ➔ VxWorks 5, VxWorks 6, VxWorks 653, etc. ➔ PowerPC, ARM, AVR, LEON, ERC32, etc. ● Run-time system ➔ ZFP, Ravenscar, Full, etc. 8
  • 9. Combinatory explosion ● Native toolchains ● OS x OS version x processor = 46 ● Cross toolchains ● Host OS x host OS version x host processor x Target OS x target OS version x target processor x run-time system = 49 9
  • 10. And things are getting more complex... ● New platforms are added each year ● Few are removed ● Long-term projects need to be supported for up 10-15 years How do I deal with that? 10
  • 11. Some figures ● 95 different platforms (native and cross) ● 15 independent test suites ➢ 15000 tests and 10 million lines of code ➢ 1.4 million tests run each night ● 96 scripts to control the infrastructure ➢ About 2300 scripts run each day 11
  • 12. How to solve the equation? ● Adopting a lean strategy ● Introducing agile tactics Let's move on! 12
  • 13. The Toyota Production System TPS Jidoka Just-in-Time ● Automatic defects ● Making only what is detection needed, when it's needed, in the amount needed + ● Stop the line ● Limited stocks with all ● Identify the problem parts ● Andon (problem display ● Replace used parts from board) the preceding process ● An operator for several ● Limited stocks for the machines preceding process 13
  • 14. Adopting a lean strategy ● Identify the value ● Identify and remove waste (muda) ● Automate ● Detect defects early ● Fix the cause of defects 14
  • 15. The value ● Provide high quality software ● Fixed release schedule ● Provide pre-release versions as soon as possible ● Support new platforms ● Add new features ● Add new tools 15
  • 16. Quality & Open-Source ● All AdaCore's products are Open-Source ● It's possible to achieve high quality ● AdaCore is an active member of the GCC community ● We identify a reasonably stable version of GCC ● We run it through our QA process ● We contribute our changes back to the community 16
  • 17. Lean testing strategy ● A fundamental piece toward achieving high quality ● Goals: ● Detect defects as early as possible ● Adopt different testing tactics to minimize risk ● Keep high level of productivity ● Balance the machine load 17
  • 18. How to detect defects? 1. Local testing 2. Mailserver 3. Check-in 5. Nightly builds SVN 4. Continuous Builder 18
  • 19. The mailserver system ● Email-based interface Less than 20 minutes! ● To test patches ● On a remote machine ● Incremental build ● Full testing even on exotic platforms ● Clean result mandatory before check-in 19
  • 20. The continuous builder ● Every check-in triggers an automatic build ● Fast machines ➔ quick feedback ● Stop-the-line: should an error be reported, immediate attention/action is required ● Limit the risk of nightly builds failures ➔ Delays in intermediate releases delivery ➔ More waste, less value ➔ Customer satisfaction decreases 20
  • 21. Nightly builds SVN Packaging Linux Windows Building Testing Red Hat 5 SuSe 9 XP Server Vista 21
  • 22. Nightly builds ● For cross platforms ➔ We test a different version of the target OS everyday ➔ Use of simulators ➔ More stability ➔ Better performances ● Heavy use of virtual machines ➔ Ease maintenance of obsolescent platforms 22
  • 23. Lean production infrastructure ● Shippable software is produced every day ● Defects are detected early ● Allows to achieve high quality ● Allows to deliver intermediate releases quickly 23
  • 24. Official releases ● Only 2 releases a year ➢ One major release (January/February) ➢ One corrective release (June/July) ● Customers can plan their own release cycle in advance ● Intermediate releases are still available ➢ Provide quick fixes ➢ Allows to experiment with new features 24
  • 25. Official releases ● Failed builds are relaunched ● Manual review of each test suite report ● Human sanity check of each package ● Cross toolchains are tested on real boards ➢ 48h to run the ACATS on some cross platforms! 25
  • 26. The release schedule 6.2 branch 6.3 branch 6.2.2 Release 6.3.2 Release 6.2.1 Release 6.3.1 Release 6.2.0 Beta 6.3.0 Beta Development branch 26 2009 2010
  • 27. New features and known problems ● New features are advertised to everybody on our web site ● Known problems are listed on the customer web interface ● Improve traceability ● Provide easy access to workarounds ● Raises interest in evolution of the technology 27
  • 28. Visual management with GAIA ● Monitor scripts ● Everything is stored ● Monitor machines in a database ● Monitor test suites ● Human-readable weather reports ● Submit analysis ● Use of the django framework 28
  • 29. GAIA: How does it work? Test machines GAIA Server GAIA User's Interface DB 29
  • 30. GAIA: Test suite overview 30
  • 33. Critical software certification ● Aerospace ● ECSS-E-ST-40C/ECSS-Q-ST-80C ● Civil Avionics ● DO-178B/ED-12B ● Air Traffic Management ● DO-278B ● Security ● Common Criteria ● Railway ● EN-50126/EN-50128/EN-50129 ● Others... 33
  • 34. DO-178B/ED-12B ● “DO-178B, Software Considerations in Airborne Systems and Equipment Certification” ● Last revision: December 1, 1992 ● DO-178C is in the pipeline ● 5 Design Assurance Levels (DAL) ● A => Catastrophic ● B => Hazardous ● C => Major ● D => Minor ● E => No effect 34
  • 35. What is in DO-178B? ● Process oriented: ● Planning ● Development ● Verification ● Configuration management ● Quality assurance ● Certification liaison 35
  • 36. DO-178B: The Waterfall Model Not very agile... Source: Wikipedia 36
  • 37. DO-178B: The V-Model Not agile either... Source: Wikipedia 37
  • 38. Certification and Qualification ● Embedded software is certified ● A tool is qualified ● As a development tool – Output is part of the airborne software – Can introduce errors – Certification-like process ● As a verification tool – May fail to detect an error – Lightweight process – Tool Operational Requirements – Requirements based testing 38
  • 39. Qualification of verification tools ● A tool may be reused in different contexts ● Operational requirements may change ● Different part of the tool may be used in different context ● The tool may evolve Let's do agile qualification! 39
  • 40. The qualification machine ● Based on FitNesse ● Centralize all qualification artifacts ● Ensure consistency between requirements, test cases and test data ● Automatic generation of qualification documents It's now easy to add new requirements and associated tests! 40
  • 41. The qualification machine Let's see it in action! 41
  • 42. References ● Lean Software Development, An Agile Toolkit by Mary and Tom Poppendieck ● Implementing Lean Software Development by Mary and Tom Poppendieck ● Lean Software Strategies, Proven Techniques for Managers and developpers by and Peter Middelton and Jim Sutton ● http://www2.toyota.co.jp/en/vision/production_s ystem/ 42