HomeContact

Main Menu

  • Home
  • Contact Us
  • About
  • James' Blog

The Software Renaissance

  • Agile Renaissance
  • Embedded Renaissance

Services

  • Coaching
  • Training
  • Public Training
  • Workshops
  • Testimonials
  • Customer Feedback

Resources

  • Papers and Presentations
  • CppUTest
  • James' Blog

Who's Online

None

Member Login






Forgot login?
Register

Designed by:
SiteGround web hosting Joomla Templates
Test DrivenDevelopment and Refactoring for Embedded C++ PDF Print E-mail

TDD and Refactoring for Embedded C++ Programmers

Test Driven Development is a powerful technique for building embedded software. This hands-on course teaches the practice of Test Driven Development in the challenging environment of C++. In this course you will learn how TDD helps overcome some of the challenges embedded developers face including: unpredictable schedules, poor quality, and the problems that follow. In addition, embedded software developers must conquer the realities of concurrent hardware/software development, scarce target hardware availability, long download times, high deployment costs, as well as the challenges of testing embedded C++.

Refactoring is changing the structure of code while not modifying its behavior. Why would this be important? In an ever-evolving code base, the good design ideas of yesterday become liabilities today. A design that is kept clean, for the current requirements, is an easier design extend. To safely refactor, automated tests are critical. Errors can sneak in during the most careful changes; a comprehensive automated test suite will catch these mistakes. In this class you will learn the techniques of refactoring and practice the critical skills needed to effectively improve the design of existing code.

The there is the problem of existing code, legacy code. How can you safely refactor that legacy code base that your product depends upon? You need to add tests, but you will never have the time to add all the tests you should have. This class teaches specific techniques to safely add tests to legacy code so that the tests can support the refactoring needed to add new capabilities to existing designs.

See what attendees of this class said.

Course Specifics

Length
  • 3 days
Audience
  • Embedded Software Developers
  • Technical team leaders
  • Managers that want to know the technology they manager
Prerequisites
  • Embedded C++ Programming
Related Courses
  • TDD for Embedded C Programmers
  • TDD for Embedded C++ Programmers
  • The Agile Embedded Experience
Course Outline
  • Test Driven Development
    • Why Test Driven Development?
    • What is Test Driven Development?
    • The Microcycle
    • Exercise
  • Special Considerations for Embedded
    • Leveraging the Development System
    • Risks of Development System Unit Testing
    • Embedded TDD Cycle
    • Hardware/Platform Independence
  • TDD with Collaborating Objects
    • TDD with Printed Output
    • Exercise
    • TDD with the Code in the Middle
    • Spies and Fakes
    • Abstracting the Hardware
    • Controlling the Clock
    • Exercise
  • Agile Design
    • Rules of Simple Design
    • SOLID Design Principles
    • DRY Principle
    • Mind Your Own Business
    • Architectural Vision
    • The Big Picture
    • Vertical Slices
    • From Specific to General
  • Refactoring
    • Critical Skills
    • Test Smells, Code Smells
    • Envisioning an Improvement
    • Incremental Improvement through Refactorings
    • Removing Smells with Refactorings
      • Long Method; Exercise
      • Feature Envy/Lazy Class; Exercise
      • Large Class; Exercise
      • Duplicate Conditional Logic; Exercise
  • Refactoring Tests
    • Test Smells
    • Duplication in tests
    • Exercise
  • Legacy Code
    • Boy Scout Rule
    • Legacy Code Algorithm
    • Seams
    • Sprouting
    • Legacy Code Techniques
    • Legacy Code Refactorings
      • Parameterize Constructor; Exercise
      • Extract and Override Call; Exercise
      • introduce Instance Delegator; Exercise
    • Legacy Code Test Addition Strategy
  • Wrap up Discussion
This course will get you and your team well on the way to applying TDD for Embedded C++ in your development efforts.
< Prev   Next >
Last Updated on Tuesday, 13 January 2009 13:25
 

See Attendee Feedback

  • Test-Driven Development
  • Legacy Code Workshop
  • Instructor
  • Other

Valid XHTML and CSS.

renaissancesoftware.net, Powered by Joomla! and designed by SiteGround web hosting