13.07.2015 Views

Software Design 2e - DIM

Software Design 2e - DIM

Software Design 2e - DIM

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

408Component-based designto address some additional issues where CBSE is concerned. In brief, these issuesinclude the provision of long-term support; the existence of a supply chain; and themanagement of upgrades.Long-term support becomes a more complex issue where there are many suppliersof system elements. For other domains of engineering, this is where the use of ‘secondsourcing’ is often employed to provide greater security for both the producer and theend user. While this does occur with software to some extent, other solutions that canbe employed include the use of preferred suppliers as well as the use of suppliers thatemploy a mechanism such as escrow, storing source code in an independent, trustedand secure repository.The existence of a supply chain is not wholly novel either, since few software suppliersalso construct the basic tools that they use for creating software, such as compilers.(Indeed, some of the popularity of open source compilers such as gcc amongsystem developers probably stems at least in part from an awareness of this.) Themajor problem that this provides for the customer is one of assigning responsibility forany problems that may arise in use. The role of the integrator, and their relationshipwith the customer, is likely to be a key element in this.Lastly, the question of upgrades needs to be considered. Since individual suppliersmay upgrade components independently, there are possible consequences for the managementof overall system maintenance, and for the scheduling of upgrades. The distributednature of this process may make it more difficult to manage and, while thetechnical responsibilities may lie chiefly with the integrator, the customer does need tobe aware of this issue when planning their own risk-avoidance strategies and systemupgrades.17.2 <strong>Design</strong>ing with componentsHaving discussed the nature of the basic design elements used in CBSE design, we nowaddress the question of how to design systems using software components. The diversenature of components, the variety of architectural styles used for their construction,and the relative immaturity of the concept means that no well-established practiceshave yet evolved. Indeed, to use the terms we introduced in the previous chapter, thedevelopment of systematic design procedures for CBSE is more likely to be a revolutionaryprocess than one of synthesis.However, there are a number of issues that we can consider, including possibledesign strategies, as well as the activities that support them. So in this section we lookat these inasmuch as the limited experiences available will permit, and then briefly considerthe question of how knowledge and experience of component-based design ideasmight be most effectively shared and transferred.17.2.1 Finding componentsAssuming that the design task is not limited to using locally-developed components,then a key task for the designer is when and how to search for any components thatthey need.Despite the existence of a fairly extensive and growing literature on CBSE, and onthe subject of component characteristics, there is very little guidance available about

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!