When and The place to be Closed (Duplicate)

By Donald Firesmith Principal Engineer
Software program Options Division

As a result of advances in {hardware} and software program applied sciences, Division of Protection (DoD) methods immediately are extremely succesful and sophisticated. Nevertheless, in addition they face growing scale, computation, and safety challenges. Compounding these challenges, DoD methods had been traditionally designed utilizing stove-piped architectures that lock the Authorities right into a small variety of system integrators, every devising proprietary level options which might be costly to develop and maintain over the lifecycle. Though these stove-piped options have been problematic (and unsustainable) for years, the funds cuts occurring beneath sequestration are motivating the DoD to reinvigorate its concentrate on figuring out different means to drive down prices, create extra inexpensive acquisition selections, and enhance acquisition program efficiency. A promising strategy to satisfy these targets is Open Methods Structure (OSA), which mixes

This weblog put up expands on earlier protection of how acquisition professionals and system integrators can apply OSA practices to successfully decompose massive monolithic enterprise and technical architectures into manageable and modular options that may combine innovation extra quickly and decrease whole possession prices.

What’s OSA and How Ought to It Be Utilized?

By definition, an OSA is any system (or software program) structure that displays the next three useful traits:

  1. It’s modular, being decomposed into architectural parts which might be cohesive, loosely coupled with different parts (and exterior methods), and encapsulate (cover) their implementations behind seen interfaces.
  2. Its key interfaces between architectural parts conform to open interface requirements (that’s, consensus primarily based, extensively used, and simply out there to potential customers).
  3. Its key interfaces have been verified to adapt to the related open interface requirements.

By mandating contractors to engineer OSA (e.g., by way of Higher Shopping for Energy 3.0), authorities acquisition organizations hope to attain a number of advantages, two of an important of that are to extend competitors amongst builders of the architectural parts and to keep away from vendor lock with regards to buying and updating these parts. Given these advantages, authorities program workplaces might get the impression at first look that every one system architectures ought to be utterly open. This impression is particularly true when one considers the DoD insurance policies (resembling DoDI 5000.02) that require program workplaces to make sure protection contractors produce open system architectures.

One vital phrase within the definition of open system architectures, nevertheless, reveals this preliminary impression to be false. The definition doesn’t state that all interfaces should conform to open interface requirements, however quite solely key interfaces should be open. Furthermore, if one examines precise system architectures, one shortly learns that openness isn’t black and white however quite a matter of diploma. Some interfaces are extremely open (e.g., they conform to extensively used worldwide requirements), some interfaces are comparatively open (i.e., they conform to less-widely used, extra application-domain-specific requirements or extensively used de facto requirements), some interfaces are barely open (e.g., they conform to product-line-specific conventions), and a few interfaces are primarily closed (i.e., they’re system-unique or conform to contractor-proprietary “requirements”).

Steps to Producing an OSA

A number of steps required to provide an OSA are described beneath.

  • Step 1: Resolve find out how to modularize the system. The primary OSA modularization strategy sometimes decomposes the system into individually procurable architectural parts to assist competitors, decrease vendor lock, and allow know-how refresh. This strategy is used to determine the important thing architectural parts of the system that ought to be open, whereas the opposite components doubtlessly could also be closed or partially open. The interfaces of those key parts are then outlined as the important thing interfaces that ought to conform to open interface requirements.
  • Step 2: Decide the related open interface requirements to make use of for key interfaces. When ought to an interface be recognized as a key interface and, due to this fact, when ought to that interface be open? The reply is mostly a matter of cost-benefit evaluation. Whereas there are clearly advantages to being open, there are additionally related prices and challenges. Mandating the usage of an open interface normal might necessitate the alternative of an present closed (e.g., proprietary) interface, coaching the builders to make use of the brand new interface normal, and lowered developer productiveness till the brand new interface normal is mastered.
  • Step 3: Confirm conformance to the open interface requirements. As talked about earlier, an open interface should be verified (by way of testing or static evaluation) to adapt, each syntactically and semantically, to the related open interface normal. It is usually vital to doc and confirm any implementation-defined parts of the usual.

In concept and if all issues had been equal, it could be good if all architectural parts had been modular and open. In follow, nevertheless, all issues will not be equal and different high quality attributes (resembling dependability, efficiency, robustness, security, and safety) could also be extra vital than openness alone for some architectural parts. Completely good causes might due to this fact exist for why these parts shouldn’t be open or at most partially open. For instance, conforming to a particular open interface normal might lower system efficiency or have damaging safety ramifications. In different phrases, when engineering a system structure, the architects should weigh competing necessities (particularly the non-functional high quality attributes) in opposition to one another, and openness is just one such requirement to think about when making engineering and enterprise trade-offs.

In abstract, architects of OSA-based options ought to forego openness in these components of the system and software program structure the place the next situations maintain:

  1. There aren’t any sturdy causes to make the architectural part individually procurable. For instance, there may be presently solely a single vendor certified, or the prices of transitioning away from a sole-source contract could be extreme or unaffordable given present or foreseen funding ranges. Be aware that program managers and designers want to understand that short-term and long-term affordability could also be fairly completely different, and that an over-emphasis on short-term affordability could also be a case of “penny clever and pound silly.”
  2. There are overriding causes to violate modularity or to modularize in a means that minimizes competitors. For instance, the present poorly modularized structure would value an excessive amount of or take too lengthy to re-architect.
  3. There are overriding causes to make use of comparatively closed interface requirements, to make use of proprietary requirements, or to make use of no normal in any respect. For instance, no open interface normal exists, the open interface requirements end in insufficient high quality (e.g., efficiency, robustness, security, or safety), the open interfaces requirements are too immature or not sufficiently specified, or the price of changing an present proprietary interface exceeds the anticipated value financial savings from making the interface extra open.

When selections are made to make use of closed or comparatively unopen architectures, you will need to doc the related rationales and justifications. This documentation is invaluable when trade-offs and selections concerning openness should be revisited (e.g., on account of fast adjustments in applied sciences and the emphasis on acquiring wanted capabilities by integrating unbiased methods into systems-of-systems).

Be aware that nothing within the above justifies ignoring openness, and it shouldn’t be misused as an excuse to engineer a closed system structure. Program workplaces ought to be certain that integrators present satisfactory justification for the comparatively or utterly closed components of the system structure and that they aren’t avoiding openness to keep away from competitors and guarantee vendor lock.


Though an OSA will virtually definitely end in vital advantages (particularly if openness is maintained by way of the event and lifecycle), each DoD coverage and good system/software program structure engineering acknowledge {that a} 100-percent open system structure is often unachievable. Furthermore, openness should be weighed in opposition to competing necessities to acquire one of the best architectural resolution.

Further Sources

To learn the SEI Weblog put up The Significance of Automated Testing in Open Methods Structure Initiatives, by Douglas C. Schmidt please click on right here.

To learn the summary and presentation supplies from the SATURN 2015 dialogue Open Methods Architectures: Progress and Challenges, please click on right here.

Related Articles


Please enter your comment!
Please enter your name here

Latest Articles