11.02.2014 Views

UML PROFILE FOR SAVECCM - Research

UML PROFILE FOR SAVECCM - Research

UML PROFILE FOR SAVECCM - Research

SHOW MORE
SHOW LESS

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

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

Saved successfully!

Ooh no, something went wrong!