SlideShare a Scribd company logo
Slide 1
SOFTWARE-GENBRUG
- fra en leverandørs synspunkt
December
2017
Slide 2
BGAN Products with Licensed GateHouse IP
82,000+ licensed units
Slide 3
BGAN Waveform Components
L-band Antenna
RF
Application Framework
Customer Applications
Interfaces
Protocol Stack
Physical Layer
Satellite Terminal
1. Contains 3 independent components
2. Can be licensed individually
3. The Protocol Stack is a de facto standard
GateHouse Waveform
Slide 4
Typical Terminal Development Process
Knowledge Transfer
• Product design and program planning
• Exchange of documentation
• Training
Platform Porting & Optimization
• Delivery of platform to GateHouse
• Interface code modifications
• Build of software for target platform
• BGAN waveform pre-release
Approval Testing
• Inmarsat MTR
• BGAN Network Emulator
• On air testing
Inmarsat FTA
Time
1-2 months
3-6 months
4-8 months
8-16 months
Slide 5
Setup & Drivers
InmarsatGateHouse
Manufacturers
Specification
Test
Requirements
System
Changes
Support &
Maintenance
Type Approval
Project
Milestones
Slide 6
Development & Maintenance
• System Definition Manual (Protocol Specification)
– Updates 1-2 times a year
– Major additions every ~4 years
• Manufacturer requirements & milestones
– Product launch milestones
– Requirements conflicting with specifications
– Customer-specific workarounds
• Manufacturer maintenance constraints
– Reluctance to upgrade to latest
– Aero requirements (DO-178b)
– Refactoring is frowned upon
Slide 7
Legal Challenges
• Open Source Clauses
– “No 3rd party software” (unless agreed in contract)
• Qualification & Certification
– DO-178 (Airborne Systems)
– Or... MISRA
• Export control
– Encryption
Slide 10
Software “Reuse” For Us
• Functionality is obviously reusable
– 90% of core stack is the same despite product differentiation
– 10% is market-sector/feature-specific (maritime, aero, safety)
• More than ‘inheriting software packages’
– Maintain core library across diverse set of projects & milestones
• Challenges
– Diverse architectures, compilers, operating systems
– Parallel feature development & maintenance
– Products & launch schedules
Slide 11
Challenges: Architectures
• ARM
– multiple versions & manufacturers
• PowerPC
• i386
• As low as (2004):
– 50 MHz
– 32 MB RAM
– 16 kB data cache, 16 kB instruction cache
• Problem areas
– Code size (and effect on caching)
– Data copying
– Levels of indirection
– Stack initially developed on PC
Slide 12
Challenges: Operating Systems
• Embedded
– VxWorks
– QNX
– Nucleus
– Integrity
– (Linux)
• PC
– Windows
– Linux
• Memory management
• Threading/tasking, pre-emption
Slide 13
OS Interfaces
• Primitive wrappers for:
– Mutex (Re-entrant)
– Thread (Pre-emptive)
– Semaphore
– Memory management
– (IP Stack)
• None of these:
– Filesystem
– Message passing
• NV-MEM, Logging
Slide 14
Challenges: Compilers
• Visual C++
• GCC
– 2.96 (17+ year old, bastard version by Windriver)
• Poor C++03 support
• Poor optimization for ARM
– GCC 3.3 (12 years old as of 2017)
– GCC latest-and-greatest
• Warnings
• Green Hills Integrity
• armcc
Slide 15
Challenges: Build Systems
1. Previously:
1. Visual Studio solutions (in version control)
2. Hand-written Makefiles
3. Attempts at “generic” Makefiles
4. Others: Eclipse/Green Hills
2. Today:
1. CMake
2. Target-specific Makefiles
3. Tool-specific “solution/project” files (e.g. Green Hills)
3. Rules:
1. No cyclic link-time dependencies!
2. No cyclic compile-time dependencies (includes) (Sadly not 100%)
3. Include what you need, and only what you need
Slide 16
Challenges: Multiple Development Tracks
Baseline
BGAN-X
HDR/LDR
1.x
2.x
3.0
3.1
3.2
2.4
3.0
MSDS
2002 2004 2010 2017
SB-SAT
3.x-SB-SAT
2.x-SB-SAT
SB-SAFETY
2.4-customer1 2.4-customer2
2012
Slide 17
Development Process
• Software style guide
• Implemented in C++ (subset)
– Restricted use of standard library (vector, list, map, queue is OK)
• Unit tests of low-level functionality
• System-level test of high-level functionality
• Every change (bugfix, features) implemented on a branch
– Code review, test before merge
– Build server:
• Builds with several compiler versions (-Wall -Wextra -Werror -pedantic)
• Runs unit tests
• Checks code style
• Changes selectively merged as a part of the release process
Slide 18
Change Control
Coding begins
Acceptable number
ofWTFs
Change is merged
to baseline / Patch prepared
Too many WTFs
It s a bug
It s a
feature
New issueis filed
New Rejected
Accepted
In Progress
Approved
Feedback
Testing
Verified
Test passes
Closed
Software released
Test
fails
Assign issue to person
responsible for implementing
thechange
Assign issue to person
responsible for reviewing the
change
Assign issue to person
responsible for testing the
change
Fix is committed
Ready for review
Coding begins
Acceptable number
ofWTFs
Too many WTFs
It s a bug
It s a
feature
New issueis filed
New Rejected
Accepted
In Progress
Approved
Feedback
Test
fails
Assign issue to person
responsible for implementing
thechange
Assign issue to person
responsible for reviewing the
change
Fix is committed
Ready for review
Coding begins
Acceptable number
ofWTFs
Change is merged
to baseline / Patch prepared
Too many WTFs
In Progress
Approved
Feedback
Testing
Verified
Test passes
Closed
Software released
Test
fails
Assign issue to person
responsible for implementing
thechange
Assign issue to person
responsible for reviewing the
change
Assign issue to person
responsible for testing the
change
Fix is committed
Ready for review
Slide 19
Lessons from Mistakes - Dependencies
• Dependencies
– well defined
– minimal
– strict
– non-cyclic
• Types of dependencies
– Link time dependencies (libraries)
– Compile-time (includes)
Slide 20
Lessons from mistakes 2 – Interface Design
1. Interface Design Anti-patterns
1. Design-by-legacy:
1. Designed in cooperation with user (Affected by user’s legacy)
2. Not prepared for other user’s legacy
2. Complexity exclusion:
1. Move complexity to user side of interface
2. Great effort on user, requiring domain knowledge
2. Choose two:
1. Quick to develop
2. Easy to understand & use
3. Generic enough for multiple use cases
Slide 21
Lessons from mistakes 3 – Plan for change
“We don’t break user space”
- Linus Torvalds
1. Evaluate every design decision:
1. Is there a risk we will need to change this?
2. Will is be possible to change this? What will the approach be?
3. Can I make the change now so I wont have to later?
4. Can the design be made orthogonal to future changes?
2. It can be the simplest of things:
1. Coding style that won’t work on a future platform (e.g. use of uintX_t, size_t)
2. Code clean-ups/trivial refactoring
3. Directory structure
4. Include hierarchy
Slide 22
OUR EXPERTISE. YOUR GAIN.
Thank you
for your time!
Thank you
for your time!
Thank you
for your time!

More Related Content

What's hot

Stinson post si and verification
Stinson post si and verificationStinson post si and verification
Stinson post si and verificationObsidian Software
 
The Cortex-A15 Verification Story
The Cortex-A15 Verification StoryThe Cortex-A15 Verification Story
The Cortex-A15 Verification StoryDVClub
 
System verilog verification building blocks
System verilog verification building blocksSystem verilog verification building blocks
System verilog verification building blocksNirav Desai
 
SLTS kernel and base-layer development in the Civil Infrastructure Platform
SLTS kernel and base-layer development in the Civil Infrastructure PlatformSLTS kernel and base-layer development in the Civil Infrastructure Platform
SLTS kernel and base-layer development in the Civil Infrastructure Platform
Yoshitake Kobayashi
 
Process modelling at BaneDanmark
Process modelling at BaneDanmarkProcess modelling at BaneDanmark
Process modelling at BaneDanmark
InfinIT - Innovationsnetværket for it
 
Journey toward3rdplatform
Journey toward3rdplatformJourney toward3rdplatform
Journey toward3rdplatform
Tzung-Hsien (Shawn) Ho
 
Why we didn't catch that
Why we didn't catch thatWhy we didn't catch that
Why we didn't catch thatgaoliang641
 
InterConnect2016_4932
InterConnect2016_4932InterConnect2016_4932
InterConnect2016_4932Clare Carty
 
Reliability Testing in OPNFV
Reliability Testing in OPNFVReliability Testing in OPNFV
Reliability Testing in OPNFV
OPNFV
 
Sneak Peek into the New ChangeMan ZMF Release
Sneak Peek into the New ChangeMan ZMF ReleaseSneak Peek into the New ChangeMan ZMF Release
Sneak Peek into the New ChangeMan ZMF Release
Navita Sood
 
Design method
Design methodDesign method
Design method
Shahryar Malik
 
Pankajavalli_Bandaru_Resume-updatedoctNov11th
Pankajavalli_Bandaru_Resume-updatedoctNov11thPankajavalli_Bandaru_Resume-updatedoctNov11th
Pankajavalli_Bandaru_Resume-updatedoctNov11thVeda Valli
 
Architecting for the cloud storage build test
Architecting for the cloud storage build testArchitecting for the cloud storage build test
Architecting for the cloud storage build test
Len Bass
 
Mastering FPGA Design through Debug, Adrian Hernandez, Xilinx
Mastering FPGA Design through Debug, Adrian Hernandez, XilinxMastering FPGA Design through Debug, Adrian Hernandez, Xilinx
Mastering FPGA Design through Debug, Adrian Hernandez, XilinxFPGA Central
 
Using Embedded Linux for Infrastructure Systems
Using Embedded Linux for Infrastructure SystemsUsing Embedded Linux for Infrastructure Systems
Using Embedded Linux for Infrastructure Systems
Yoshitake Kobayashi
 

What's hot (20)

Stinson post si and verification
Stinson post si and verificationStinson post si and verification
Stinson post si and verification
 
Sharam salamian
Sharam salamianSharam salamian
Sharam salamian
 
The Cortex-A15 Verification Story
The Cortex-A15 Verification StoryThe Cortex-A15 Verification Story
The Cortex-A15 Verification Story
 
System verilog verification building blocks
System verilog verification building blocksSystem verilog verification building blocks
System verilog verification building blocks
 
SLTS kernel and base-layer development in the Civil Infrastructure Platform
SLTS kernel and base-layer development in the Civil Infrastructure PlatformSLTS kernel and base-layer development in the Civil Infrastructure Platform
SLTS kernel and base-layer development in the Civil Infrastructure Platform
 
Process modelling at BaneDanmark
Process modelling at BaneDanmarkProcess modelling at BaneDanmark
Process modelling at BaneDanmark
 
Zhang rtp q307
Zhang rtp q307Zhang rtp q307
Zhang rtp q307
 
Chris brown ti
Chris brown tiChris brown ti
Chris brown ti
 
Journey toward3rdplatform
Journey toward3rdplatformJourney toward3rdplatform
Journey toward3rdplatform
 
Why we didn't catch that
Why we didn't catch thatWhy we didn't catch that
Why we didn't catch that
 
Verification strategies
Verification strategiesVerification strategies
Verification strategies
 
Vishal_Resume
Vishal_ResumeVishal_Resume
Vishal_Resume
 
InterConnect2016_4932
InterConnect2016_4932InterConnect2016_4932
InterConnect2016_4932
 
Reliability Testing in OPNFV
Reliability Testing in OPNFVReliability Testing in OPNFV
Reliability Testing in OPNFV
 
Sneak Peek into the New ChangeMan ZMF Release
Sneak Peek into the New ChangeMan ZMF ReleaseSneak Peek into the New ChangeMan ZMF Release
Sneak Peek into the New ChangeMan ZMF Release
 
Design method
Design methodDesign method
Design method
 
Pankajavalli_Bandaru_Resume-updatedoctNov11th
Pankajavalli_Bandaru_Resume-updatedoctNov11thPankajavalli_Bandaru_Resume-updatedoctNov11th
Pankajavalli_Bandaru_Resume-updatedoctNov11th
 
Architecting for the cloud storage build test
Architecting for the cloud storage build testArchitecting for the cloud storage build test
Architecting for the cloud storage build test
 
Mastering FPGA Design through Debug, Adrian Hernandez, Xilinx
Mastering FPGA Design through Debug, Adrian Hernandez, XilinxMastering FPGA Design through Debug, Adrian Hernandez, Xilinx
Mastering FPGA Design through Debug, Adrian Hernandez, Xilinx
 
Using Embedded Linux for Infrastructure Systems
Using Embedded Linux for Infrastructure SystemsUsing Embedded Linux for Infrastructure Systems
Using Embedded Linux for Infrastructure Systems
 

Similar to Gatehouse software genanvendelse

The Top 5 Practices of a Highly Successful ChangeMan ZMF Administrator
The Top 5 Practices of a Highly Successful ChangeMan ZMF AdministratorThe Top 5 Practices of a Highly Successful ChangeMan ZMF Administrator
The Top 5 Practices of a Highly Successful ChangeMan ZMF Administrator
Serena Software
 
Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life
DevOps.com
 
DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013
Ethan Ram
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Tools
ghodgkinson
 
Versioning for Developers
Versioning for DevelopersVersioning for Developers
Versioning for Developers
Michelangelo van Dam
 
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOpsHybrid and Multi-Cloud Strategies for Kubernetes with GitOps
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps
Sonja Schweigert
 
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOpsHybrid and Multi-Cloud Strategies for Kubernetes with GitOps
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps
Weaveworks
 
IRATI @ RINA Workshop 2014, Dublin
IRATI @ RINA Workshop 2014, DublinIRATI @ RINA Workshop 2014, Dublin
IRATI @ RINA Workshop 2014, Dublin
Eleni Trouva
 
Cloud Native Engineering with SRE and GitOps
Cloud Native Engineering with SRE and GitOpsCloud Native Engineering with SRE and GitOps
Cloud Native Engineering with SRE and GitOps
Weaveworks
 
25Waterfall.pptx
25Waterfall.pptx25Waterfall.pptx
25Waterfall.pptx
miketyson64
 
Swimming upstream: OPNFV Doctor project case study
Swimming upstream: OPNFV Doctor project case studySwimming upstream: OPNFV Doctor project case study
Swimming upstream: OPNFV Doctor project case study
OPNFV
 
Building products - A Nifty Approach
Building products - A Nifty ApproachBuilding products - A Nifty Approach
Building products - A Nifty Approach
GuruprasadBhat21
 
Patterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to KubernetesPatterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to Kubernetes
QAware GmbH
 
Patterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to KubernetesPatterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to Kubernetes
Josef Adersberger
 
Irati goals and achievements - 3rd RINA Workshop
Irati goals and achievements - 3rd RINA WorkshopIrati goals and achievements - 3rd RINA Workshop
Irati goals and achievements - 3rd RINA Workshop
Eleni Trouva
 
Automated Deployment and Management of Edge Clouds
Automated Deployment and Management of Edge CloudsAutomated Deployment and Management of Edge Clouds
Automated Deployment and Management of Edge Clouds
Jay Bryant
 
Maniteja_Professional_Resume
Maniteja_Professional_ResumeManiteja_Professional_Resume
Maniteja_Professional_ResumeVaddi Maniteja
 
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...
Nesma
 

Similar to Gatehouse software genanvendelse (20)

Sudha Madhuri Yagnamurthy Resume 2 (5)
Sudha Madhuri Yagnamurthy Resume 2 (5)Sudha Madhuri Yagnamurthy Resume 2 (5)
Sudha Madhuri Yagnamurthy Resume 2 (5)
 
Christopher_Reder_2016
Christopher_Reder_2016Christopher_Reder_2016
Christopher_Reder_2016
 
The Top 5 Practices of a Highly Successful ChangeMan ZMF Administrator
The Top 5 Practices of a Highly Successful ChangeMan ZMF AdministratorThe Top 5 Practices of a Highly Successful ChangeMan ZMF Administrator
The Top 5 Practices of a Highly Successful ChangeMan ZMF Administrator
 
Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life
 
DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Tools
 
Versioning for Developers
Versioning for DevelopersVersioning for Developers
Versioning for Developers
 
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOpsHybrid and Multi-Cloud Strategies for Kubernetes with GitOps
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps
 
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOpsHybrid and Multi-Cloud Strategies for Kubernetes with GitOps
Hybrid and Multi-Cloud Strategies for Kubernetes with GitOps
 
IRATI @ RINA Workshop 2014, Dublin
IRATI @ RINA Workshop 2014, DublinIRATI @ RINA Workshop 2014, Dublin
IRATI @ RINA Workshop 2014, Dublin
 
Cloud Native Engineering with SRE and GitOps
Cloud Native Engineering with SRE and GitOpsCloud Native Engineering with SRE and GitOps
Cloud Native Engineering with SRE and GitOps
 
25Waterfall.pptx
25Waterfall.pptx25Waterfall.pptx
25Waterfall.pptx
 
Swimming upstream: OPNFV Doctor project case study
Swimming upstream: OPNFV Doctor project case studySwimming upstream: OPNFV Doctor project case study
Swimming upstream: OPNFV Doctor project case study
 
Building products - A Nifty Approach
Building products - A Nifty ApproachBuilding products - A Nifty Approach
Building products - A Nifty Approach
 
Patterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to KubernetesPatterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to Kubernetes
 
Patterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to KubernetesPatterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to Kubernetes
 
Irati goals and achievements - 3rd RINA Workshop
Irati goals and achievements - 3rd RINA WorkshopIrati goals and achievements - 3rd RINA Workshop
Irati goals and achievements - 3rd RINA Workshop
 
Automated Deployment and Management of Edge Clouds
Automated Deployment and Management of Edge CloudsAutomated Deployment and Management of Edge Clouds
Automated Deployment and Management of Edge Clouds
 
Maniteja_Professional_Resume
Maniteja_Professional_ResumeManiteja_Professional_Resume
Maniteja_Professional_Resume
 
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...
 

More from InfinIT - Innovationsnetværket for it

Erfaringer med-c kurt-noermark
Erfaringer med-c kurt-noermarkErfaringer med-c kurt-noermark
Erfaringer med-c kurt-noermark
InfinIT - Innovationsnetværket for it
 
Object orientering, test driven development og c
Object orientering, test driven development og cObject orientering, test driven development og c
Object orientering, test driven development og c
InfinIT - Innovationsnetværket for it
 
Embedded softwaredevelopment hcs
Embedded softwaredevelopment hcsEmbedded softwaredevelopment hcs
Embedded softwaredevelopment hcs
InfinIT - Innovationsnetværket for it
 
C og c++-jens lund jensen
C og c++-jens lund jensenC og c++-jens lund jensen
C og c++-jens lund jensen
InfinIT - Innovationsnetværket for it
 
201811xx foredrag c_cpp
201811xx foredrag c_cpp201811xx foredrag c_cpp
C som-programmeringssprog-bt
C som-programmeringssprog-btC som-programmeringssprog-bt
C som-programmeringssprog-bt
InfinIT - Innovationsnetværket for it
 
Infinit seminar 060918
Infinit seminar 060918Infinit seminar 060918
DCR solutions
DCR solutionsDCR solutions
Not your grandfathers BPM
Not your grandfathers BPMNot your grandfathers BPM
Not your grandfathers BPM
InfinIT - Innovationsnetværket for it
 
Kmd workzone - an evolutionary approach to revolution
Kmd workzone - an evolutionary approach to revolutionKmd workzone - an evolutionary approach to revolution
Kmd workzone - an evolutionary approach to revolution
InfinIT - Innovationsnetværket for it
 
EcoKnow - oplæg
EcoKnow - oplægEcoKnow - oplæg
Martin Wickins Chatbots i fronten
Martin Wickins Chatbots i frontenMartin Wickins Chatbots i fronten
Martin Wickins Chatbots i fronten
InfinIT - Innovationsnetværket for it
 
Marie Fenger ai kundeservice
Marie Fenger ai kundeserviceMarie Fenger ai kundeservice
Marie Fenger ai kundeservice
InfinIT - Innovationsnetværket for it
 
Mads Kaysen SupWiz
Mads Kaysen SupWizMads Kaysen SupWiz
Leif Howalt NNIT Service Support Center
Leif Howalt NNIT Service Support CenterLeif Howalt NNIT Service Support Center
Leif Howalt NNIT Service Support Center
InfinIT - Innovationsnetværket for it
 
Jan Neerbek NLP og Chatbots
Jan Neerbek NLP og ChatbotsJan Neerbek NLP og Chatbots
Jan Neerbek NLP og Chatbots
InfinIT - Innovationsnetværket for it
 
Anders Soegaard NLP for Customer Support
Anders Soegaard NLP for Customer SupportAnders Soegaard NLP for Customer Support
Anders Soegaard NLP for Customer Support
InfinIT - Innovationsnetværket for it
 
Stephen Alstrup infinit august 2018
Stephen Alstrup infinit august 2018Stephen Alstrup infinit august 2018
Stephen Alstrup infinit august 2018
InfinIT - Innovationsnetværket for it
 
Innovation og værdiskabelse i it-projekter
Innovation og værdiskabelse i it-projekterInnovation og værdiskabelse i it-projekter
Innovation og værdiskabelse i it-projekter
InfinIT - Innovationsnetværket for it
 
Rokoko infin it presentation
Rokoko infin it presentation Rokoko infin it presentation
Rokoko infin it presentation
InfinIT - Innovationsnetværket for it
 

More from InfinIT - Innovationsnetværket for it (20)

Erfaringer med-c kurt-noermark
Erfaringer med-c kurt-noermarkErfaringer med-c kurt-noermark
Erfaringer med-c kurt-noermark
 
Object orientering, test driven development og c
Object orientering, test driven development og cObject orientering, test driven development og c
Object orientering, test driven development og c
 
Embedded softwaredevelopment hcs
Embedded softwaredevelopment hcsEmbedded softwaredevelopment hcs
Embedded softwaredevelopment hcs
 
C og c++-jens lund jensen
C og c++-jens lund jensenC og c++-jens lund jensen
C og c++-jens lund jensen
 
201811xx foredrag c_cpp
201811xx foredrag c_cpp201811xx foredrag c_cpp
201811xx foredrag c_cpp
 
C som-programmeringssprog-bt
C som-programmeringssprog-btC som-programmeringssprog-bt
C som-programmeringssprog-bt
 
Infinit seminar 060918
Infinit seminar 060918Infinit seminar 060918
Infinit seminar 060918
 
DCR solutions
DCR solutionsDCR solutions
DCR solutions
 
Not your grandfathers BPM
Not your grandfathers BPMNot your grandfathers BPM
Not your grandfathers BPM
 
Kmd workzone - an evolutionary approach to revolution
Kmd workzone - an evolutionary approach to revolutionKmd workzone - an evolutionary approach to revolution
Kmd workzone - an evolutionary approach to revolution
 
EcoKnow - oplæg
EcoKnow - oplægEcoKnow - oplæg
EcoKnow - oplæg
 
Martin Wickins Chatbots i fronten
Martin Wickins Chatbots i frontenMartin Wickins Chatbots i fronten
Martin Wickins Chatbots i fronten
 
Marie Fenger ai kundeservice
Marie Fenger ai kundeserviceMarie Fenger ai kundeservice
Marie Fenger ai kundeservice
 
Mads Kaysen SupWiz
Mads Kaysen SupWizMads Kaysen SupWiz
Mads Kaysen SupWiz
 
Leif Howalt NNIT Service Support Center
Leif Howalt NNIT Service Support CenterLeif Howalt NNIT Service Support Center
Leif Howalt NNIT Service Support Center
 
Jan Neerbek NLP og Chatbots
Jan Neerbek NLP og ChatbotsJan Neerbek NLP og Chatbots
Jan Neerbek NLP og Chatbots
 
Anders Soegaard NLP for Customer Support
Anders Soegaard NLP for Customer SupportAnders Soegaard NLP for Customer Support
Anders Soegaard NLP for Customer Support
 
Stephen Alstrup infinit august 2018
Stephen Alstrup infinit august 2018Stephen Alstrup infinit august 2018
Stephen Alstrup infinit august 2018
 
Innovation og værdiskabelse i it-projekter
Innovation og værdiskabelse i it-projekterInnovation og værdiskabelse i it-projekter
Innovation og værdiskabelse i it-projekter
 
Rokoko infin it presentation
Rokoko infin it presentation Rokoko infin it presentation
Rokoko infin it presentation
 

Recently uploaded

Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
Globus
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..
UiPathCommunity
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 

Recently uploaded (20)

Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 

Gatehouse software genanvendelse

  • 1. Slide 1 SOFTWARE-GENBRUG - fra en leverandørs synspunkt December 2017
  • 2. Slide 2 BGAN Products with Licensed GateHouse IP 82,000+ licensed units
  • 3. Slide 3 BGAN Waveform Components L-band Antenna RF Application Framework Customer Applications Interfaces Protocol Stack Physical Layer Satellite Terminal 1. Contains 3 independent components 2. Can be licensed individually 3. The Protocol Stack is a de facto standard GateHouse Waveform
  • 4. Slide 4 Typical Terminal Development Process Knowledge Transfer • Product design and program planning • Exchange of documentation • Training Platform Porting & Optimization • Delivery of platform to GateHouse • Interface code modifications • Build of software for target platform • BGAN waveform pre-release Approval Testing • Inmarsat MTR • BGAN Network Emulator • On air testing Inmarsat FTA Time 1-2 months 3-6 months 4-8 months 8-16 months
  • 5. Slide 5 Setup & Drivers InmarsatGateHouse Manufacturers Specification Test Requirements System Changes Support & Maintenance Type Approval Project Milestones
  • 6. Slide 6 Development & Maintenance • System Definition Manual (Protocol Specification) – Updates 1-2 times a year – Major additions every ~4 years • Manufacturer requirements & milestones – Product launch milestones – Requirements conflicting with specifications – Customer-specific workarounds • Manufacturer maintenance constraints – Reluctance to upgrade to latest – Aero requirements (DO-178b) – Refactoring is frowned upon
  • 7. Slide 7 Legal Challenges • Open Source Clauses – “No 3rd party software” (unless agreed in contract) • Qualification & Certification – DO-178 (Airborne Systems) – Or... MISRA • Export control – Encryption
  • 8. Slide 10 Software “Reuse” For Us • Functionality is obviously reusable – 90% of core stack is the same despite product differentiation – 10% is market-sector/feature-specific (maritime, aero, safety) • More than ‘inheriting software packages’ – Maintain core library across diverse set of projects & milestones • Challenges – Diverse architectures, compilers, operating systems – Parallel feature development & maintenance – Products & launch schedules
  • 9. Slide 11 Challenges: Architectures • ARM – multiple versions & manufacturers • PowerPC • i386 • As low as (2004): – 50 MHz – 32 MB RAM – 16 kB data cache, 16 kB instruction cache • Problem areas – Code size (and effect on caching) – Data copying – Levels of indirection – Stack initially developed on PC
  • 10. Slide 12 Challenges: Operating Systems • Embedded – VxWorks – QNX – Nucleus – Integrity – (Linux) • PC – Windows – Linux • Memory management • Threading/tasking, pre-emption
  • 11. Slide 13 OS Interfaces • Primitive wrappers for: – Mutex (Re-entrant) – Thread (Pre-emptive) – Semaphore – Memory management – (IP Stack) • None of these: – Filesystem – Message passing • NV-MEM, Logging
  • 12. Slide 14 Challenges: Compilers • Visual C++ • GCC – 2.96 (17+ year old, bastard version by Windriver) • Poor C++03 support • Poor optimization for ARM – GCC 3.3 (12 years old as of 2017) – GCC latest-and-greatest • Warnings • Green Hills Integrity • armcc
  • 13. Slide 15 Challenges: Build Systems 1. Previously: 1. Visual Studio solutions (in version control) 2. Hand-written Makefiles 3. Attempts at “generic” Makefiles 4. Others: Eclipse/Green Hills 2. Today: 1. CMake 2. Target-specific Makefiles 3. Tool-specific “solution/project” files (e.g. Green Hills) 3. Rules: 1. No cyclic link-time dependencies! 2. No cyclic compile-time dependencies (includes) (Sadly not 100%) 3. Include what you need, and only what you need
  • 14. Slide 16 Challenges: Multiple Development Tracks Baseline BGAN-X HDR/LDR 1.x 2.x 3.0 3.1 3.2 2.4 3.0 MSDS 2002 2004 2010 2017 SB-SAT 3.x-SB-SAT 2.x-SB-SAT SB-SAFETY 2.4-customer1 2.4-customer2 2012
  • 15. Slide 17 Development Process • Software style guide • Implemented in C++ (subset) – Restricted use of standard library (vector, list, map, queue is OK) • Unit tests of low-level functionality • System-level test of high-level functionality • Every change (bugfix, features) implemented on a branch – Code review, test before merge – Build server: • Builds with several compiler versions (-Wall -Wextra -Werror -pedantic) • Runs unit tests • Checks code style • Changes selectively merged as a part of the release process
  • 16. Slide 18 Change Control Coding begins Acceptable number ofWTFs Change is merged to baseline / Patch prepared Too many WTFs It s a bug It s a feature New issueis filed New Rejected Accepted In Progress Approved Feedback Testing Verified Test passes Closed Software released Test fails Assign issue to person responsible for implementing thechange Assign issue to person responsible for reviewing the change Assign issue to person responsible for testing the change Fix is committed Ready for review Coding begins Acceptable number ofWTFs Too many WTFs It s a bug It s a feature New issueis filed New Rejected Accepted In Progress Approved Feedback Test fails Assign issue to person responsible for implementing thechange Assign issue to person responsible for reviewing the change Fix is committed Ready for review Coding begins Acceptable number ofWTFs Change is merged to baseline / Patch prepared Too many WTFs In Progress Approved Feedback Testing Verified Test passes Closed Software released Test fails Assign issue to person responsible for implementing thechange Assign issue to person responsible for reviewing the change Assign issue to person responsible for testing the change Fix is committed Ready for review
  • 17. Slide 19 Lessons from Mistakes - Dependencies • Dependencies – well defined – minimal – strict – non-cyclic • Types of dependencies – Link time dependencies (libraries) – Compile-time (includes)
  • 18. Slide 20 Lessons from mistakes 2 – Interface Design 1. Interface Design Anti-patterns 1. Design-by-legacy: 1. Designed in cooperation with user (Affected by user’s legacy) 2. Not prepared for other user’s legacy 2. Complexity exclusion: 1. Move complexity to user side of interface 2. Great effort on user, requiring domain knowledge 2. Choose two: 1. Quick to develop 2. Easy to understand & use 3. Generic enough for multiple use cases
  • 19. Slide 21 Lessons from mistakes 3 – Plan for change “We don’t break user space” - Linus Torvalds 1. Evaluate every design decision: 1. Is there a risk we will need to change this? 2. Will is be possible to change this? What will the approach be? 3. Can I make the change now so I wont have to later? 4. Can the design be made orthogonal to future changes? 2. It can be the simplest of things: 1. Coding style that won’t work on a future platform (e.g. use of uintX_t, size_t) 2. Code clean-ups/trivial refactoring 3. Directory structure 4. Include hierarchy
  • 20. Slide 22 OUR EXPERTISE. YOUR GAIN. Thank you for your time! Thank you for your time! Thank you for your time!