Santa, All We Want For New Year 2019 is … Seven More Avionics Engineers!

4 Jan

OK, time for honesty:  did everyone get what they wanted from Santa Claus ten days ago?!?   Yes, Santa was good for everyone here at AFuzion Inc. with our record-breaking year doubling last year’s $ results.  But one thing (actually seven things) were missing from under the Tree … yes, Engineers.

You see, we’ve been steadily increasing staff here the past five years to keep up with our growing business in 25 countries.  At our December planning meeting, we actually wrote a letter to Santa asking him ” Santa, please bring us 9 more engineers. To start work Jan 7, 2019.”  Really.  Now folks, all of us either have children, know children, or are still children.  My kids even say I’m just a big child during the holidays.  We BELIEVE in Santa Claus. (Santa, are you listening?)  When we were kids, we usually got some of what we wanted.  But this year, Santa only brought us two engineers.  2.  T-W-O.    Santa, can you spell “N I N E”?  As in “9”.  We asked for 9.  We got 2.

Santa, do you not do math at the North Pole?  When Susie or Johnnie ask for a new bike, do you simply bring them one tire?  Yes, the two engineers you brought were great. Really.  Truly.  Top 10% of their field which is our minimum standard.  Thank you Santa.  But again we asked for Nine.  We got TWO …

Santa, if you are listening, we won’t tell anyone if you secretly make another trip to our chimney and bring us seven more engineers.  Yes, these are for the USA so must be USA citizens.  Yes, these are for the western USA so hopefully they want to live in Los Angeles, Phoenix, or Dallas.  Please Santa, if you can’t bring the engineers directly to us, please just send us their contact info or CV to our email at info@afuzion.com.  Otherwise Santa, we’re going to spread the word that you sleep in funny red pajamas and live off cookies, milk, and … reindeer meat.  Santa, really.  Lay off the reindeer – just send us great Engineers please. ASAP!!!

Yours truly,

All the Engineers (Elves) at AFuzion Inc.

AFuzion Releases All-New Requirements Whitepaper for DO-178C, DO-254, and ARP4754A Software, Hardware, and Systems

20 Dec

 

AFuzion Inc. today announces the free availability of its newest technical whitepaper: “Requirements for Safety-Critical & Avionics Software, Hardware, and Systems”.  Previously available only to AFuzion’s 300+ clients, this latest paper is now available for free download from AFuzion’s whitepaper page.   Says Jeff Stevenson, AFuzion’s Business Manager:  “When AFuzion was smaller, we did business with 30-40% of the world’s avionics companies. But now the majority of them are AFuzion’s clients and our  technical papers are so widely distributed it only makes sense to make them fully available to all engineers worldwide.  The key is Safety, combined with efficiency and quality, so we’re adding a little year-end Holiday Cheer and making AFuzion’s latest paper publicly available.”

Adds Vance Hilderman, AFuzion’s Chief Technical Office and the author of this paper: “System, Software, and Hardware requirements are truly the key to safety-critical project success.  As we have taught 20,000 engineers in our AFuzion courses, Requirements development, management, and refinement are the true keys to project success. ARP4754 System requirements, DO-178C software requirements, and DO-254 hardware requirements development is both a science and an art. This paper describes how to build better systems faster and cheaper via Requirements.  Few things in life, or in aviation, are simple. But that truism is.”

This latest AFuzion paper is 14-pages filled with detailed information on creating, managing, refining, and validating requirements. Remember, verification means “does the implementation meet the requirements”, whereas validation asks “and do we have the ‘right’ requirements”.  This AFuzion paper shows why Validation is more important than Verification because without the right requirements, it is largely irrelevant if they are then verified.  Indeed. 

AFuzion has created perhaps the world’s largest library of technical whitepapers for safety-critical and aviation development. AFuzion’s decade’s old papers are still distributed by former employees (with the author’s name accidentally removed and replaced), but all AFuzion’s latest papers are freely available to clients.  Anyone is allowed to download up to two papers for free, so no reason to refer to the decades-old versions passed around elsewhere. 

For a free download, simply click here or go the AFuzion website under Whitepapers: Click Here For Free AFuzion Whitepaper Download

AFuzion Launches New CAST-32A Multi-Core Processing Training

18 Nov

AFuzion’s new CAST-32A Multi-Core Processing for Avionics and Safety-Critical developers has launched with strong acclaim. The future of embedded processing is via multi-core processors as the need for added processing power has surpassed the ability of CPU’s to keep up. However, multi-core processors utilize shared cache, shared memory, and shared communications I/O. This sharing between the MCP cores produces potential interference which can violate the very “determinism” requisite for certifiable safety-critical systems. For example, avionics DO-178C and DO-254 require adherence to CAST-32A recently updated by the worldwide Certification Authorities Software Team (CAST).

CAST-32A is the worldwide (America, Europe, Asia) Certification Authorities Software Team (CAST) guidance for ensuring safe implementation of Multi-Core Processing (MCP) within avionics systems. Increasingly MCP’s are used in avionics and understanding what must be done to plan for, implement, and verify deterministic “safe” MCP development via CAST-32A is the focus of this AFuzion 2-day private training course. Attendees will understand how to utilize multiple-cores providing simultaneous operations using deterministically shared resources such as cache, memory, and communications and performing MCP CAST-32A Interference Analysis. Attendees will also learn how to work with RTOS vendors and RTOS’s themselves to comply with CAST-32A and develop safer avionics.  For a free technical whitepaper on CAST-32A, download here: Click Here for Free AFuzion Technical Whitepaper “Understanding CAST-32A

 

CAST-32A is increasingly relevant to avionics developers but users find it vague and challenging to understand. AFuzion’s 2-day CAST-32A Training teaches attendees how to properly understand, deploy, and verify MCP-based applications. AFuzion’s training was recently provided with our industry partner Lynx Software to 45 senior MCP developers in Huntsville Alabama and it was a resounding success; all the attendees stated it was highly worthwhile and crisply delivered to provide a true practical understanding of CAST-32A deployment for avionics via DO-178C and DO-254. AFuzion’s CAST32A training syllabus is summarized below, with full details at AFuzion’s website, https://afuzion.com/training/cast-32a-multi-core-processing-training/

 

KEY FEATURES:

  • CAST-32A Introduction
  • Summary of DO-178C, for Multi-Core usage
  • RTOS Introduction & Scheduling, Processes, Tasks, and Threads
  • MCP What & Why
  • DO-178C & MCP – Plans, Standards, Activities
  • CAST-32A MCP Robust Partitioning Principles
  • RTOS Specifics – Technical Info
  • DO-254 & MCP
  • MCP Cert, Deadlines, Benchmarks & Reports
  • Overview: IMA, ARP4754A, ARP4761 & MCP
  • IMA & CAST-32A Modules and Partitioning
  • DO-178C’s & MCP Requirements, Design & Verification –
  • MCP & CAST-32A Best Practices for Planning, Testing, & Certification
  • MCP & CAST-32A WCET Mistakes & Best Practices

Can Multi-Core Processing Be Safe? Maybe … (CAST-32A)

3 Oct

 

 

Yes, you are busy and in today’s world you want immediate answers to important questions. “Is Multi-Core Processing safe?” The quick answer: “It can be, but …”. The slightly less quick answer: read the next few paragraphs. The proper answer: review CAST-32A or listen in on the free technical webinar on October 11, 2018 (sign up here: free but limited to the first 500 signups and these always are oversubscribed: Free Multi-Core Technical Webinar Signup: )

For safety-critical systems, a key facet of safety is “determinism”, via apriori planning, development, verification, then safety certification. But Multi-Core Processing (MCP) achieves faster processing by performing multiple activities at the same time, in parallel, by allocating tasks to different processing cores which are all embedded on a single processor. Today, your computer or cellphone likely uses MCP. Why MCP? Simple: we want our devices to do more and to do it more quickly. We’re slowly reaching the point of diminishing returns on silicon density technology where we’ve blissfully followed Moore’s law via improved processor fabrication and faster clock speeds. The answer: put multiple processing cores on a single chip and enable use of shared resources (memory, cache, etc.) to enable faster “parallel” processing (where actual “parallelism” is determined by both the application developer’s architecture and the task allocation model, including operating system).

But just as free lunches are rarely “free”, MCP isn’t fully “free”; certainly not for safety-critical systems where that pesky “Determinism” attribute is important. Just five years ago, MCP was considered to be so dangerous it was indirectly “banned” by worldwide aviation authorities. But those authorities are too smart (clever?) to actually “ban” a technology, so they published a document named CAST-32 which essentially stated “MCP could be used if the developer could prove all cores were disabled except for one”. Wait – if you disable all cores except one, then you don’t really “have” MCP, do you?!? Who knew the advanced certification experts had a great sense of humor. Now, when disabling three out of four engines on a four-engine airplane, you’re essentially flying a heavier single engine airplane with worse performance characteristics than a true single engine aircraft. Same with disabling all the cores on a multi-core processor. Brilliant.

And then, voila, technical evolution meets Today: the new update to CAST-32, aptly titled CAST-32A, allows for true MCP usage in airborne safety-critical systems. But the new MCP lunch isn’t free: we now have to prove determinism within the MCP including its innermost secret (intellectual property) workings. This means we must prove predictable memory and cache usage without interference. The burden of proof is on the user and typical users don’t understand (and don’t have access to) the real-time operating system (RTOS and MCP internal design to enable such proofs. Affirming MCP determinism is not trivial and you almost certainly need a certifiable MCP RTOS to enable MCP certifiability.

In the software certification world, there is an interesting relationship between OOT and MCP. Yes, both acronyms have three letters. But the real similarity is in utilizing safe subsets. Example: true C++ was not fully usable 15 years ago until rules for safe object oriented technology via defined language subsets (MISRA C++) were formalized. The result was that full C++ cannot be used without rules limiting its usage (for example, restricting the use of inheritance, polymorphism, overloading, and garbage collection). Similarly, full MCP usage will be difficult to prove deterministic usage so limitations simplify MCP acceptability; those limitations include core/task allocation models which greatly reduce potential interference paths between cores. So, a certifiable MCP use-case is there and becoming clearer. To make it very clear, simply watch the free AFuzion technical webinar at the link provided above. Or watch it anytime later via the AFuzion free technical training webinars posted on YouTube here: AFuzion Free Technical Youtube Webinars.

There you go: quick answers for you busy engineers. But we’re never too busy to be safe so keep your cores deterministic.

Safe Skies,

Cheers, Vance Hilderman (CEO AFuzion Inc.)

To Succeed, We Must Know Failure

26 Aug

TO SUCCEED, WE MUST FIRST KNOW FAILURE.

Have you noticed that each Fall, many new articles are published supposedly teaching us how to Succeed. But one year later, an all-new set of “How To Succeed” articles is published, meaning the prior books must not have worked. The reason? This author believes the answer is easy: “To succeed, we must first know failure.”

That’s right: success requires a solid foundation and that foundation must be devoid of cracks. To avoid cracks in your success foundation, we must know what causes cracks. Consider a simple building: foundation cracks can be caused by poor design, weak cement, insufficient steel reinforcement, earthquakes, water intrusion, loose underlayment, and here in AFuzion’s Manhattan headquarters as I write this … water intrusion from storms. Any attempt to build a solid foundation without knowing the causes of cracks requires perfect luck along with blissful ignorance. In real life, continuous luck never happens so success requires knowing the causes of failure.

FAILURE & CHOICE.

Several years ago while starting AFuzion, I needed firsthand Failure knowledge. Why? Simple – I had lost several friends in airplane crashes and I was working on my own pilot license. My 50+ years had many successes, however there were several instances of failure which I hadn’t fully explored. However, in aviation, there would be no opportunity for self-exploration of failures, so I realized I needed to understand the cause of past failures. Yes, I too had read hundreds of those “Success” articles mentioned above and found them helpful. Helpful at creating the successes but worthless at preventing my Failures. There’s the answer and it was a simple choice: I could either rely upon perfect luck to avoid dying in my airplane, or I needed to really understand Failure. I chose the latter.

For millennia, humans evolved knowledge by improving upon successes while simultaneously learning from failures. The quotation “Those who don’t understand history are bound to repeat it” rang true: early humans quickly learned two fundamental truths: 1) “If it worked the first time there’s no guarantee it will always work the second time”, and 2) “If it didn’t work the first time, it probably won’t work the second time”.

Now wouldn’t it be refreshing to have open discourse about our failures so that others could learn from and prevent repetition? The conundrum: authors mistakenly believe their reputations will be tarnished if others learn how often they failed … so much better to avoid Failure discussions and write only about Success! And that dear readers is why this Fall’s plethora of newly released Success articles will so closely resemble last year’s … until now.

I completed my piloting ground school not studying only successful pilot actions but also studying accidents and what caused them. In most aviation accidents, the ground and onboard fuel are unforgiving so it’s up to the investigators to help us learn from the failure. But my real career has been devoted to thirty years of avionics development – mostly successful but a few failures intertwined. While the successes were numerous (founding and leading three of the world’s largest avionics development/certification companies), failures sometimes occurred. Fortunately the Success spotlight shone brighter than the Failures meaning the latter could be cast aside. Ignored by most. I went on to write many articles and books about achieving avionics development success but never recorded the Failures. Until now. Truly, I learned from those failures. I learned they were more numerous than imagined because we optimistic humans readily gloss over failures. And I learned my failures were preventable as I never repeated a failure; instead I simply found the freedom to incur new failures interspersed with many successes. Did my successes diminish my failures? Only on the grand stage of Visibility which differs from real life. So now, with the help of my fellow avionics development colleague Mr. Joao Esteves, we have recorded for all posterity “How To Fail at Avionics Development”.   Yes, go ahead and read this Fall’s new batch of Success articles. Enjoy them and have good luck with them. But pilots (and avionics developers) who rely upon luck soon find it in short supply. Instead, try something new: study real failures and their causes. Mine. Ours. And hopefully not Yours.

For a free download of “How To Fail at Avionics Development” simply email info@afuzion.com or download free whitepapers here: Click here for free AFuzion Technical Paper download

Brazil Safety-Critical Training Week, September 10 – 14, 2018 (Both Free & Paid Training)

23 Jul

Brazil’s largest full week of safety-critical development training is just six weeks away – hope to see you there!

Free Safety-Critical Software/Hardware Seminar, Sept 10, 2018: 

Theme: “Electronic complex and embedded software in critical systems”

Location: Technological Park of São José dos Campos, SP – Brazil

Date: September 10, 2018

Ticket price: FREE

Speakers:

  1. Vance Hilderman

CEO of AFuzion and specialist in software and systems development, with a focus on “safety-critical” in the aerospace and automotive sectors;

  1. Gilberto Trivelato

CEO of Seamax Aircraft and specialist in development of safety-critical control systems with aeronautical certification levels;

  1. Two other highly specialized specialists related to the theme.

 

Formal DO-254 Intermediate Avionics Hardware Development & Certification Training

Date: September 11-12, 2018

Location: Technological Park of São José dos Campos, SP – Brazil

 

Details:

Since DO-254 was released ten years ago, the knowledge of software hardware development processes, techniques, and strategies for safety-critical hardware has vastly changed and in some cases improved.  However, there is a large gap between understanding the real intent of DO-254 certification and the minimalist words in the Book. Just as commercial hardware development techniques have advanced, so has the world of aviation hardware development and certification. This Intermediate DO-254 training will provide important knowledge for attendees to rise to, understand, and apply those advancements and new hardware certification requirements for FAA, EASA and worldwide certification agencies.  This Intermediate DO-254 training is intended for persons with basic familiarity of DO-254, DO-178, or safety-critical standards. If no prior training, just request AFuzion’s training papers to read in advance – freely provided to attending students.  The developer/teacher is the principal founder of two of the world’s largest avionics consulting companies and the principal author of several of the world’s most popular publications on DO-254: Vance Hilderman has taught over 11,000 avionics engineers and managers worldwide, including FAA and EASA officials, and engineers from 95 of the world’s largest 100 aviation companies: more than all the competitor’s current trainers in the world, combined.

AFuzion’s training has been provided to over 17,500 aviation engineers from 1,000 companies in 30 countries; more than all other trainers in the world combined. Brief summary below; contact us for more free information.

 

KEY FEATURES:

  • Quick refresher on basic DO-254 and “how” DO-254 is applied to advanced avionics
  • Understanding CAST-27 and AC 20-152 and related EASA certification requirements
  • Understanding actual hardware DO-254 requirements with actual case study
  • Advanced analysis, element analysis, and structural coverage for hardware logic
  • Actual hardware PHAC review checklist walkthrough
  • Actual hardware HWPA (“quality assurance”) review checklist walkthrough
  • Representative SOI audits for Hardware – what are they for #1, 2, 3, and 4
  • Hardware Requirements Validation – what is involved
  • Applying DO-254 to Military AND Commercial usage; differences between EASA & FAA
  • Understanding advanced DO-254 mistakes and best practices to avoid them element analysis/coverage
  • Controlling engineering cost/risks with DO-254 Requirements, Design, and Logic
  • Understanding and applying AC 20-152, CAST-27, and EASA-CM-SWCEH-001 for avionics hardware development per ED-80 and DO-254

WHO:  Attendees may include engineers, managers, quality assurance or certification personnel with previous knowledge, training, or experience in DO-254.

 For More Info & Registration: Click here for DO-254 Seminar Info

==========================================================================

Formal DO-178C Advanced Avionics Software Development & Certification Training

Date: September 13-14, 2018

Location: Technological Park of São José dos Campos, SP – Brazil

Details:

DO-178C (ED-12CC) is arguably the world’s most difficult software “standard” and many millions of lives rely on it yearly. But software development has rapidly evolved along with aircraft design:  many new technologies must be considered, and certified: C++, Model-Based Development, Formal Methods, non-CPU based logic, and advanced tools. New techniques for specifying avionics requirements and design must also be understood.  But what are detailed and derived DO-178C requirements?  How can C++ and OOT be safely used and certified per DO-332?   What are DO-178C Model-Based Development best practices in applying DO-331?  What are the answers to applying DO-178C’s Parameter Data Items?  What were the DO-178B weaknesses and how is DO-178C really different from DO-178B?  How can DO-178C cost and schedule be reduced by 20-30%?

This advanced DO-178C training is intended for persons with basic familiarity of DO-178 or safety-critical standards. If no prior training, just request AFuzion’s training papers to read in advance – freely provided to attending students.  The developer/teacher is the principal founder of two of the world’s largest avionics consulting companies and the principal author of the world’s most popular publications on DO-178: Vance Hilderman has taught over 11,000 avionics engineers and managers worldwide, including FAA and EASA officials, and engineers from 95 of the world’s largest 100 aviation companies: more than all the competitor’s current trainers in the world, combined.

AFuzion’s training has been provided to over 17,500 aviation engineers from 1,000 companies in 30 countries; more than all other trainers in the world combined. Brief summary below; contact us for more free information.

 KEY FEATURES:

  • Quick refresher on basic DO-178C and “how” DO-178C is applied to advanced avionics
  • Grasp key differences between DO-178B and DO-178C for more advanced users
  • Advanced Safety, Derived Requirements, and Detailed DO-178C Requirements
  • Understanding advanced DO-178C mistakes and best practices to avoid them including model based development, OOT, and C++
  • Controlling engineering cost/risks with DO-178C Requirements, Design, and Code
  • Understanding & applying DO-178C’s Supplements for:
    –     DO-330/ED-215 Software Tool Qualification
    –     DO-331/ED-216 Model-Based Development and Verification
    –     DO-332/ED-217 Object-Oriented Technology
    –     DO-333/ED-218 Formal Methods Supplement
  • Who:  Attendees may include engineers, managers, quality assurance or certification personnel with previous knowledge, training, or experience in DO-178.

For More Info & Registration:  Click Here for DO-178C Seminar Info

Object Oriented Technology, Safety Critical, and DO-332: Achieving Success in Software

17 Jul

If you’re involved in modern software development, then you care about OOT, or “Object Oriented Technology”.  If your software is for high-reliability or safety-critical applications, then you really care about OOT, especially “safe” OOT.  Why? Simple:  systems are becoming more complex, software is doing more of that complexity management, and schedules are tightening; while there’s no single magic bullet, OOT provides many answers.  And don’t you wish you had a single book that explained OOT, provided a tutorial, had decent examples, and emphasized the safety critical aspects?  Impossible for a single book to provide such?  We get this question often during AFuzion’s various safety-critical development training courses.  Our trainers have learned to provide a consistent answer: understand “DO-332”, the aviation community’s guideline for safety-critical OOT and you’ll have many of the answers.  Here is a brief synopsis below, and the full 12-page technical whitepaper is available here for a free download: Click here for AFuzion’s Free 12-Page Technical OOT Whitepaper

DO-332, Object-Oriented Technology and Related Techniques Supplement to DO-178C and DO-278A, is a 150-page guideline governing OOT usage in airborne and ground-based aviation software. However, since true OOT is relatively new to aviation software, (though Ada ’95 has been around since … 1995), the authors of DO-332 faced a large hurdle: how to provide meaningful guidelines to persons generally unfamiliar with object oriented software? The answer was skillfully handled within DO-332 by blending practical “guidelines” with an introduction to OOT which laid a common foundation for OOT terminology, application and certifiability.
There are many ways of approaching software development; hundreds of books are in print with many seemingly preaching their own “methodology”. But as all the many colors in a peacock stem from basic Red-Green-Blue, software development at its most (overly) simplified vantage has two “primary colors”: functional structured design and object-oriented design. Unlike the peacock, with software these “colors” do not blend well; many software design elements are considered to be either “functional” or “object oriented”. Traditional functional software is designed by considering then structuring each sequence of computer actions one at a time. Conversely, object oriented software is designed by first articulating software objects and actions to be performed on those objects, then integrating such objects/actions into meaningful groups and events. Yes, functional design may have some objects. Yes, object oriented design will use some sequential structural behaviors. But as a few drops of oil can float on water, that oil and water are hardly integrated; similarly functional and object oriented design are two distinct approaches which in their pure forms do not integrate easily with each other.

Prior to the publication of DO-332, safety-critical software developers had few rules for applying OOT. Programming standards such as MISRA C++ were available and well; those were used and should still be applied along with a commercial static analysis tool to sanitize and improve C++ source code. However, clear guidance for safety-critical OOT design and verification was lacking; DO-332 attempts to fill that void. In functional software design, the control flow is preordained by the developer thus the sequence of decisions (“control flow” in DO-178C) is considered along with the input and output data function-by-function (“data flow” in DO-178C). A typical structured sequence is depicted below:

In object-oriented software design, the individual data flow and control flow aspects are encapsulated via objects as depicted in this OOT class diagram; note the low level data/control flow elements are less visible than in the structured diagram depicted previously: (see the full diagram in AFuzion’s OOT whitepaper available here: Free Download AFuzion’s DO-332 OOT Whitepaper

Safety-critical domains including aviation are risk-averse; new technologies are considered suspect until their safety is proven. In safety-critical software, determinism and verifiability are paramount. For many years traditionalists held that functional software development was more deterministic than OOT: structured software’s execution sequencing was easily determined and repeatable. And at the unit level (software functions and collections of functions within a file), functional structured software was more readily verified: source code sections could be traced directly to associated software low-level requirements (LLR’s) and tested sequence by sequence. Thus functional software design readily enabled determinism and verifiability, while doing so reliably for decades. With such a successful track record of reliability, why would anyone desire OOT with its radical paradigm shift? Simple: the very essence of evolution …

According to Darwinism, evolution occurs in nature when a genetic change is seen to provide advantages for survival. Similarly for technology, evolution occurs when a change provides economic advantage, which is commercial survival. The software evolution from functional design to OOT occurred for the simple reason that OOT increasingly embodied two economic advantages over functional design: 1) greater ability to manage increasing software complexity, and 2) greater reusability. The seeds of aviation software evolution thus sprouted.

To understand the need for OOT is to understand the need for DO-332: aviation software, like all software, was (and still is today) growing dramatically in size, complexity, and thus cost. Enhanced safety meant increased software functionality which meant increased software size and complexity. Functional structured software is fine, even advantageous, when functionality is simple. Computing power increased exponentially according to Moore’s law allowing aviation developers to harness that increased capability.
OOT Introduction.
In the iron age of computing (fifty to twenty years ago), software was written manually by conceiving the sequential instruction execution necessary to accomplish an objective. When close hardware support was needed, assembly language was favored for more direct CPU-level control; otherwise source languages such as FORTRAN, Ada, or C were typically used for scientific programming. Aviation software grew exponentially in the 70’s and 80’s, meaning Ada and C predominated as the language of choice. Improving both reusability and complexity management was increasingly important so smart developers deployed a variety of techniques toward these goals: encapsulation, hardware abstraction, wrappers, and building libraries of software components with generic and robust interfaces. While these techniques improved reusability and complexity management, the commercial consumer and financial sectors went much further: they rethought the entire premise of programming via writing sequential instructions and instead adopted object oriented (OO) programming via a variety of languages designed especially for OO support. The safety-critical world slowly followed though OO posed challenges to verification, and thus certification. To understand why OO had such challenges, it’s necessary to first understand OO.

Instead of merely conceiving and writing (“coding”) sequential instructions for a computer program, OO developers think in terms of Objects. An object contains encapsulated data and procedures which are combined together and thus represent an entity. An object is a data structure that contains data. Instructions (“code”) are implemented within procedures which are called “methods”. The object has interfaces which describe how it interacts within the program. Instead of thinking in terms of individual sequential instructions, OO developers perform programming at a higher level by defining objects and interactions which consist of groups of instructions instead of single sequential instructions. An object’s methods can access, and possibly update, data within the object. Objects have many forms as shown here (see AFuzion’s whitepaper for actual figures).

Objects then can take many different forms, but in each of these forms an object maintains the following attributes:
 Is an abstraction of a real-world concept or thing
 Has a clear boundary
 Has a unique identity
 Knows things about itself
 May perform actions on itself
 May interact with other objects

Like people, professions, and even aircraft, objects can vary dramatically in their functionality, ability, and complexity. At their most simplistic, there are three basic types of objects as depicted below:

As can be seen in AFuzion’s whitepaper on OOT, objects themselves are capable and interesting. But by themselves they are not that useful. Consider an aircraft engine: by itself it too is capable and interesting. However the engine becomes powerful and useful when combined with an aircraft structure, wings, and control systems. Similarly, an object becomes powerful and useful when used within the context of Object Oriented Programming (OOP). The basic concepts of OOP are the software design capabilities incorporated within the programming language, typically C++ for aviation and many of today’s safety-critical systems. These aspects are summarized in the figure below (download AFuzion’s whitepaper for the complete details).

For information on advanced DO-178C training and  software development for safety-critical applications, click here: http://afuzion.com/training/avionics-software-advanced-do-178c-training-class/