UML PROFILE FOR SAVECCM - Research
UML PROFILE FOR SAVECCM - Research
UML PROFILE FOR SAVECCM - Research
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Component – based software engineering<br />
2. Component – Based Software Engineering<br />
This section introduces the new and increasing approach in software<br />
engineering, the Component – Based Software Engineering.<br />
2.1 An itroduction to CBSE discipline<br />
The field of component-based software engineering (CBSE) is concerned with<br />
the development of software applications and systems by assembling pre-existing<br />
smaller pieces, which are termed software components. A consequence of this<br />
approach is that software components may be independently developed, reused in<br />
many various applications or systems, or can be replaced within those systems<br />
without any side effect. To assemble components, a proprietary code that<br />
connects the components is usually needed (this code is often called a .glue<br />
code).<br />
In an ideal world, assembling of components would be simple and smooth.<br />
However, in real world, CBSE is still a new discipline, and there are many<br />
problems to solve, and supporting technologies and tools to develop. That is why<br />
assembling of components is still a complex and often difficult process.<br />
The widespread development and reuse of software components is regarded by<br />
many as one of the next biggest phenomena for software development. Reusing<br />
high-quality software components in software development has the potential for<br />
drastically improving the quality and development productivity of component-based<br />
software. Building systems based on reusable components is not a new idea. It<br />
has been proven to be a very effective cost-reduction approach.<br />
Component-based systems are a result of adopting a component-based design<br />
strategy. By design strategy, it is considered something very close to architectural<br />
style – a high level design pattern described by the types of components in a<br />
system and their patterns of interaction [Bass 98]. Software component technology<br />
includes the concepts that support and reflect this design pattern as it is depicted<br />
graphically in Figure 2-1. This reflection is due to the fact that software component<br />
technology does not only exist in development process but it is also the part of<br />
deployed system.<br />
3