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 />
naming scheme to ensure this demand (CORBA, EJB, and Microsoft<br />
DCOM).<br />
• Modularity and encapsulation. Each component encapsulates a set of<br />
closely related elements and implements appropriate logic to perform a<br />
specific task.<br />
• Independent delivery. Software component must be delivered as<br />
independent part which can be integrated into the system and can be<br />
replaced under certain conditions. Each component must play an<br />
independent role in a system.<br />
• Contract – based interface. A software component has its interface which<br />
determines a contract between the client of an interface and a provider of<br />
an implementation for the interface. A contract specifies what is expected<br />
from the client in order to use the interface to access a component<br />
service function. It also defines what kind of services and<br />
implementations have to be provided to meet the service contract. This<br />
implicates that a component delivers its provided services only if its<br />
clients access the provided component interface in a right way.<br />
• Reusability. Reusability of software components is the fundamental<br />
notion of CBSE. Unlike a conventional software module which usually<br />
has a very limited reuse scope, a software component provides multiplelevel<br />
granularities for reuse on a large scope. The reusable elements of a<br />
software component include its analysis specification, component design<br />
and design patterns, source code, and executables. In addition,<br />
component deployment mechanisms and test support information (such<br />
as test cases and test scripts) are also a reusable items.<br />
Properties listed above, evince that a software component merges two distinct<br />
perspectives: component as an implementation and component as an architectural<br />
abstraction; components are therefore architectural implementations. Viewed as<br />
implementations, components can be deployed, and assembled into larger<br />
(sub)systems. Viewed as architectural abstractions, components express design<br />
rules that impose a standard coordination model on all components. These design<br />
rules take the form of a component model, or a set of standards and conventions<br />
to which components must conform.<br />
The most important feature of a component is the separation of its interfaces<br />
from its implementation. What distinguishes the concepts in CBSE from concepts<br />
in many other programming languages are requirements of integration of a<br />
component into an application. Component integration and deployment should be<br />
independent of the component development life cycle and there should be no<br />
need to recompile the application when updating with a new component.<br />
7