Large-Scale C++ (Workshop): Applied Hierarchical Reuse Using Bloomberg's Foundation Libraries

Pearson presents Large-Scale C++ (Workshop): Applied Hierarchical Reuse Using Bloomberg's Foundation Libraries.

Large-Scale C++ (Workshop): Applied Hierarchical Reuse Using Bloomberg’s Foundation Libraries

Course Description

In this video training, John Lakos surveys problems associated with very large scale C++ development, and the cohesive techniques to address those problems, culminating in a proven component-based methodology refined through his practical experience at Bloomberg. The real-world application of this methodology including three levels of aggregation, acyclic dependencies, nominal cohesion, fine-grained factoring, class categories, narrow contracts, and thorough component-level testing will be demonstrated using the recently released open-source distribution of Bloomberg’s foundation libraries. After watching the video, viewers will be in an excellent position to selectively delve deeper into the various separate aspects of this comprehensive development methodology. Topics covered in this Pearson course: Hierarchical Reuse ... Read More »

In this video training, John Lakos surveys problems associated with very large scale C++ development, and the cohesive techniques to address those problems, culminating in a proven component-based methodology refined through his practical experience at Bloomberg. The real-world application of this methodology including three levels of aggregation, acyclic dependencies, nominal cohesion, fine-grained factoring, class categories, narrow contracts, and thorough component-level testing will be demonstrated using the recently released open-source distribution of Bloomberg’s foundation libraries. After watching the video, viewers will be in an excellent position to selectively delve deeper into the various separate aspects of this comprehensive development methodology.

Topics covered in this Pearson course:

  • Hierarchical Reuse
  • Sound Physical Design
  • Components, Packages, and Package Groups
  • Logical/Physical Synergy
  • Value Semantics
  • (Unique) Vocabulary Types
  • Design by Contract (DbC)
  • Defensive Programming
  • Component-Level Test Drivers
  • Peer Review
  • Static Analysis Tools
  • (Customizable) Defensive Checks
  • Fully Factored Solutions
Read Less
Course Details:

Target Audience

  • Enterprise Architects, Team Leads, and Senior Software Developers looking to better understand how to organize and package their software to achieve more efficient, firm-wide (hierarchical) reuse.

Prerequisites

  • Some familiarity with developing fairly large software systems.
  • A good (but not necessarily expert) understanding of the C/C++ family of programming languages.
Certificate Info:

Type of Certification

Certificate of Completion

Format of Certification

Digital and Print

Professional Association/Affiliation

This certificate is issued by Pearson LearnIT

Method of Obtaining Certification

Upon successful completion of the course, participants will receive a certificate of completion.

Course Outline

In the first part of this talk, John distinguishes between fine-grained, hierarchical software reuse with the software reuse that is typical of our industry. He also compares the cost of creating highly reusable software (which has a very high standard of design, implementation, documentation, and verification) to the benefits of that investment.
In the second part of this talk, John differentiates between the logical design of software (in brief, the partitioning of software into classes and functions) and the physical design of software (the partitioning of software into files and libraries). He explains the pitfalls of ignoring the relationship between these two dimensions of software engineering and presents a set of principles and specific rules for the creation of components, packages (of components), and package groups (organization that supports the creation of highly reusable software).
In the third part of this talk, John explores many aspects of implementing high-quality software. He describes categorization of classes that enable users to solve application problems in terms of well-understood, standard types (a form of the design pattern). Chief among these well-known types is the value-semantic type. The author’s exploration of design-by-contract shows how defining narrow contracts for our interfaces (i.e., contracts that allow for undefined behaviour in some circumstances) make possible defensive programming techniques that help achieve correctness during development while avoiding needless checks in production. Finally, he shows documentation rules that have been applied rigorously and effectively over a very large and diverse set of libraries.
The fourth part of this course shows how the organization of software into components that have no cyclic dependencies, all written to very clearly defined contracts, provides us with software units that are amenable to extremely comprehensive, scalable testing. Moreover, levelization reappears as a way to organize the testing of the many methods of individual classes.
The final part of this talk shows that the principles and rules presented in the first parts are not mere philosophical ideals but have been used to create the BDE libraries, foundation software for a major commercial enterprise. A portion of BDE is now available as open-source, so this part provides a brief introduction to facilities that are available for reuse and study.

DON'T HAVE TIME?

We can send you everything you need to know about this course through email.
We respect your privacy. Your information is safe and will never be shared.