icon-carat-right menu search cmu-wordmark

Understanding Software Architecture, Quality, and Security Through Code Analysis

Code analysis can often reveal important aspects regarding the overall health of your software. Whether you are the developer, project manager, or acquirer of a code base, the code has a story to tell and an understanding of code analysis will help you to ensure that its quality is built in using solid, best-practice processes.

This 3.5-hour eLearning course provides an introduction to what distinguishes high-quality code and how to better achieve it using static and dynamic analysis, coding standards, metrics, and more. The course, while primarily technical in nature, also shows how understanding code analysis basics is key for acquisition success. We start with a discussion of quality attributes and how QA's can drive the architecture, code quality, and the special quality attribute of security. From this foundation we'll see how you can illuminate the complexity, architecture, testability, and sustainability of your code base by analyzing the ground-truth artifact: the code.

Audience

This course is targeted to program office or contractor personnel responsible for development, testing, project management, and acquisition of software-intensive systems. While not a programming course, we will look at some C/C++ code as examples along the way. Learners will gain insights into the strengths (and limitations) of code analysis relevant to roles such as:

  • software/system architects and developers who are considering options for code analysis tools and approaches for engineering embedded systems.
  • technical managers, managers, and software/system architects who are looking for a solid overview of code analysis and metrics.
  • individuals who make decisions about the development or acquisition of real-time, embedded, mission- and/or safety-critical systems.

Objectives

At the completion of the course, learners will be aware of:

  • essential terms and concepts that facilitate communication between stakeholders
  • static and dynamic code analyses and how they are complimentary
  • metrics every developer, manager, or acquirer should know
  • static analysis tool considerations and use
  • acquisition considerations of code analysis
  • coding standard importance and several exemplars
  • security as a special quality attribute

Topics

  • quality attributes
  • static code analysis
  • static analysis tools
  • code metrics
  • discerning architecture from code
  • common code quality issues
  • dynamic code analysis
  • testing criteria and coverage
  • security analyses
  • acquisition considerations

Materials

This course is presented in the form of video instruction consisting of four separate modules. There is approximately 3.5 hours of content. Downloadable slides will also be available for the learner's reference. At the conclusion of the course, students will be required to receive an 80% passing score for a 10-question knowledge assessment. They will have unlimited attempts to pass.

Prerequisites

It is recommended that participants have a basic understanding of either development, project management, or the acquisition of software-intensive systems. Additionally, some familiarity of the C/C++ programming languages will help, but it is not essential to benefit from this course.

To access the SEI Learning Portal, your computer must have the following:

  • For optimum viewing, we recommend using the following browsers: Microsoft Edge, Mozilla Firefox, Google Chrome, Safari
  • These browsers are supported on the following operating systems: Microsoft Windows 8 (or higher), OSX (Last two major releases), Most Linux Distributions
  • Mobile Operating Systems: iOS 9, Android 6.0
  • Microsoft Edge, Firefox, Chrome and Safari follow a continuous release policy that makes difficult to fix a minimum version. For this reason, following the market recommendation we will support the last 2 major version of each of these browsers. Please note that as of January 2018, we do not support Safari on Windows.

 

IMPORTANT NOTICE:

Carnegie Mellon University/Software Engineering Institute offices will be closed for winter break, December 21, 2024-January 1, 2025. SEI course registrations received during this period will be confirmed and enrollment completed upon our return on January 2, 2025.

Course Questions?

Email: course-info@sei.cmu.edu
Phone: 412-268-7388

Training courses provided by the SEI are not academic courses for academic credit toward a degree. Any certificates provided are evidence of the completion of the courses and are not official academic credentials. For more information about SEI training courses, see Registration Terms and Conditions and Confidentiality of Course Records.