,

Component Essentials

Simple, scalable, component-based development

Use this practice to develop complex systems as an assembly of simpler, smaller, collaborating components.

This practice allows teams to:

  • break the problem into smaller parts and solve these smaller problems one by one
  • develop complex systems in an extensible and maintainable fashion
  • develop and verify the separate parts of the system independently and in parallel
  • develop and exploit re-usable components
  • exploit third party frameworks and component libraries


Things to Produce

This practice involves the production of a number of implementation and test artifacts:

  • A design model of the implemented system identifying components.
  • A description of each component, including its required behaviour and interfaces. 
  • Source code and unit tests for each component.
  • Integrated builds of the component system and the tests and test results used to verify the builds.


Key Competencies

This practice requires the team to be skilled in software design, implementation, unit testing and integration testing.

This requires the following competencies to be in place:


Things to do

The practice starts by identifying the set of the components that are needed to meet the requirements as captured outside this practice in Specify the System. This includes identifying an appropriate set of tesks to verify the system.

It continues by specifying the components including their unit tests, and then developing the components to meet these tests. It concludes by integrating the system and executing the integration tests to verify the system produced.