What are Software Components?

Download Report

Transcript What are Software Components?

Software Architectural
Design
Software Components
Instructor
Dr. Lawrence Chung
Introduction…

What are Software Components?
Software components are binary units of independent
production, acquisition, and deployment that interact to
form a functioning system.
-Clemens Szyperski, Component Software
The definition highlights several features of
software components:
•
•
•
Precompiled and linked into a standard binary format.
Reusable program building blocks.
Combined with other components to form an application.
Motivation…
What are the benefits we get by developing applications using
software components?






Fast application development.
Reduced cost.
Software reuse.
Improved maintainability.
Ability to reconfigure software on the fly.
Ability to fine-tune the performance characteristics of real-time applications.
The simplest answer is: “components are the way to go because all other
engineering disciplines introduced components as they became mature - and
still use them”
-Szyperski, Component Software
Also, Component software is gaining widespread acceptance in the software
industry. Examples of non-embedded component technologies include
CORBA from the ObjectManagement Group, COM from Microsoft, and
JavaBeans from Sun.
Components- A feel of them…


In the diagram above, software components consist of
two main functional entities:
A set of useful activities, or services.
A set of interfaces, or service access points (SAPs), that
allow clients (other components) to request the
activities.
Component Architecture…
The component architecture defines the structure of component
binaries. It specifies how a component’s services, SAPs, and other
information required for operation fit within the component’s
binary.
The component architecture also provides mechanisms for performing the
following activities:





Installing components in the software application.
Establishing interactions among components.
Executing component functionality while accommodating real-time constraints.
Managing instances of components.
Using operating system functionality in an efficient and standard manner.
How do Components interact?
Components communicate with each other using
service access points (SAPs). A SAP is an interface that
a component provides to clients, allowing them to
request particular services.



A component can provide multiple SAPs for multiple
clients. Each SAP provides an interface for a different
set of the component’s services.
The definition for a SAP might include a callback,
which allows the component to provide information to
the client when it has performed the requested service.
SAP code runs within the client component’s execution
context. Callback code runs within the server
component’s execution context.
How Component Execute?
SAP-API functions run under the client’s execution
context, implementing services within API functions is
not a good idea...
Instead…….
A component’s services can be implemented within its
executable threads. A component possesses zero or
more threads, each of which runs within an execution
context (OS process) defined by the software system.
When a client requests a service through a component’s
SAP, the component’s API functionality typically
schedules execution of a thread.
Questions…!!
Thank you
Niraj Agarwal