Designing and Building a System
Specify a programming environment for a secure system
Ensure that the hardware supports it
Develop and test software that provides it
And do this as flexibly as possible (standards evolve, new applications will arise, …)