SlideShare a Scribd company logo
Component Based Models
and Technology
Introduction
In contrast to design, which usually denotes a well-defined phase in the
software life cycle between requirements engineering and implementation,
modeling covers all activities ranging from analytical studies of an application
domain to testing of system parts.
Our experience has shown that these activities require a lot of knowledge and
creativity. Thus it is not purposeful to structure modeling activities by a strict
method. The process of modeling is not predictable and cannot be controlled
in a generic way.
Important properties of design or modeling techniques are the various visual
representation forms (diagrams and descriptions) of several system aspects.
We are not surprised by this focusing on design description and
representation, because our view on modeling agrees that it is simply
impossible to find adequate solutions just by following a strict method.
Style of Representation
The main purpose of the representation of the architecture is the
documentation of (intermediate) results of the modeling process to
communicate the concepts among developers, managers, programmers and
anyone else. On the one hand, it should be relatively (programming) language-
independent, but, on the other hand, the implementation should be rather
straightforward. Due to the importance of reusability, prefabricated components
should be easily embedable.
Most representation techniques use primarily diagrams and charts to capture
the essential model concepts. The reason is the more direct transformation of
mental models into graphic images and their better intuitive comprehensibility.
But graphics have their drawbacks: They tend to require enormous drawing
space which is usually just not available or useful.
Furthermore, transforming a graphic diagram into an executable program is
often a nontrivial, error-prone task. In this respect, textual representations are
superior. Unfortunately, they are less intuitive and prove inferior as thinking
tools or vehicles. So our solution encompasses both, a graphical and a textual
representation.
Composition Representation
The first kind of diagram or description depicts the decomposition of (part of)
the system into components and how these components are coupled. Each
building block has a unique name and a number of essential attributes. The
attributes serve to describe the main characteristics of their components.
Direct coupling expresses that one component uses another directly for some
reason and that the former knows the actions of the latter. Hence all actions
defined by the used part can be invoked.
Indirect coupling means that the first component can only use a (typically
small) set of standardized actions which are forwarded by the mediating
component. Mediating components which do not offer additional functionality
are represented in a collapsed form by a small circle.
Figure depicts a component structure model consisting of three coupled
components.
The second attribute of component2 holds a string value, which can be written
directly behind the attributes name whenever no other component refers to the
string.
The following textual description represents similar structure in a textual form.
The textual description gives a better chance to annotate attributes and couplings. Components
of the same kind, but with different couplings, can be described collectively in a list as shown
for comp4 , comp5, comp6 . Indirect coupling is indicated by a symbolized double arrow (-
>->).
The purpose of the component representation is to describe the static structure of the system. To
complement this picture, we need a description of the dynamic behavior, which is introduced in
the next section.
Collaboration Representation
It is not possible to give one aspect absolute precedence over the other; both the
composition and the collaboration model have to be developed in parallel.
For equal rights reasons, we now start with a textual representation. It first describes
the components by relevant actions and events which can and should be used by
other components. Each action is introduced by a leading ”>” symbol; the events are
marked by an appended ”>” symbol. Next, we describe all collaborations with
causality relationships. A causality relationship associates an event of an originator
component with an action of a receiver component. The meaning is obvious:
Whenever the originator component triggers the event (because of a state change
during an action execution), the associated action is invoked at the specified receiver
component. Optionally, a collaboration relationship may specify a list of arguments
which serve as parameters for the action. The collaboration relations of a component
implemented by a generic event dictionary where the event names serve as keys and
the action commands can be registered appropriately. When an event is triggered in a
specific component at run time, a dispatching mechanism looks up in the event
dictionary and activates one by one the action commands that are registered for the
event.
As in the composition model, equal
components can be described
collectively by arranging them in a list.
Figure 2 depicts the dynamic
collaboration model in a graphic form.
Layered Application Architecture
Composing applications out of components is not as simple as building toy
models out of Lego bricks; therefore we suggest a layered architecture for
highly interactive applications, with well defined functionality at each layer. For
typical information system applications, our architecture model consists of four
layers, as shown in Figure.
Layer 1: User Interface Model
The user interface layer consists entirely of the user interface building blocks, i.e.,
components which have a run-time representation on the screen. Obviously, the
task of these components is visualizing of application data and control devices as
well as capturing user input and triggering events for invoking the associated
commands. Very often, user interface components
can be changed either by direct manipulation by the user (e.g., selecting a list
item) or by changing program states (e.g., updating a displayed list). Since
interaction components cannot assume any functionality of the functional
components, the collaboration can only be configured dynamically in one
direction
Layer 2: Application Model
The application model consists of components which form the functional core of the
application. It has to build up and open the user interface at program start. During
program execution the application components have to maintain the user interface
according to the program state. Actuating a control element at the user interface
usually results in invoking a method of the application model. Since the application
model knows the user interface model as well as the lower-level model, it establishes
the dynamic collaboration relationships among all components. It is purposeful to
decompose a complex application model into several independent components
which either work together via dynamic collaboration or even better are just
synchronized by the underlying layer.
Layer 3: Access Model
The access layer serves as mediator between the user interface or the application
model on the one side and the domain model on the other side. It has two
important tasks: first, synchronizing accesses to and updates of the data (i.e.,
broadcasting changed events to all dependent view or application components)
and second, supplying view components with their data when required. Ideally,
the access layer should completely hide and encapsulate the underlying data, but
provide controlled access. Therefore, only values and copies of data objects
should be passed through to the higher layers. Application-specific access model
components can be viewed as the respective handling instances (authorities) for
the domain components.
Layer 4: Domain Model
The primary purpose of the domain model is to store the application data during
program execution. We prefer to use a structural object model, which is an object-
oriented data model of the domain. The domain model provides all necessary
operations for querying and manipulating the data in a basic, application-
independent form. Furthermore, the domain model is responsible for checking all
integrity conditions and ensuring other semantic characteristics of the data model.
If separated domain models might influence each other, all manipulations should
be done via the access layer. In such cases, only dynamic collaboration can be
used.
Modeling Process Activities
Domain Investigation
Having a sound knowledge on the problem domain is an absolute requirement for being able to
develop systems that solve real problems. For acquiring problem domain knowledge, a number
of techniques have been discovered and proven purposeful, including interviews,
questionnaires and accumulation of artifacts (forms, reports). Additionally, use cases and
scenarios can be used for describing business process activities. These utilities are documented
extensively in the requirements engineering literature.
Conceptual Modeling
"Conceptual modeling denotes an understanding and construction process with the purpose of
forming a model of some part of the world expressed by concepts and phenomena, i.e. a concept
formation process. The purpose of the model may either be the understanding of some existing
system or the design of some new model system."
The resulting model describes or represents concepts and phenomena of the problem domain and
their relationships in an informal way, so that the concepts and phenomena can be communicated
among all involved persons.
User Interface Modeling (Prototyping)
A crucial step in modeling is the development of a user view of the system.
This can be done by involving the experts (i.e., end users) as important participants in the process.
Data Modeling
Especially (but not exclusively) in information system development, data structures form a
decisive factor in the development process. The data engineering community has created a rich
repertoire for many aspects of data modeling.
Behavior Modeling
What we term behavior modeling is a consolidation and simplification of dynamic and state
modeling as described by Rumbaugh et al. [Rumbaugh91]. Here we view the system model as
a state automaton where each system state or mode is expressed in domain subject terms. The
behavior model is formed by a list of transactions. Each transaction is described by a user
command (input), a current state, the resulting visual response (output) and the resulting new
or old state. Additionally, each transaction may specify its implications on the data model. It is
important to understand that our behavior model views the system as a black box with a
known internal state. The behavior model should closely correspond to the conceptual model
of the end user of the system.
Component Modeling
Component modeling encompasses the activities of finding and identifying all components,
defining attributes, defining actions, defining events, and defining couplings and collaborations
of the proposed composition and collaboration model.
Components are usually already indicated by nouns of the glossary. They often correspond
to nouns, but in contrast to object modeling, closely related things which cannot exist
independently are grouped together within one component. Adjectives which can be associated
with component nouns are often candidates for attributes and verbs for actions. Since no
component is an island, some attributes may refer to other components, and/or events can be
identified which may be of interest to the environment
Interface Definition Modeling
We assume that a number of components can be reused from a library of prefabricated parts.
Only components which are not already available have to be implemented by means of a
program. For this purpose we suggest deriving class interface definitions out of the component
model. Developing the class definitions requires some experience to find good compromises
between optimal suitability for the system at hand and enough flexibility for future changes or
reuse engagements for the component.
Implementation and Test
Perhaps surprisingly, these activities belong to the modeling activities, too. But creating an
executable system in parallel with other modeling activities has the advantage that many
hindsights gained from programming can improve the overall process and the product.
Additionally, feasibility or efficiency problems of any kind arise much earlier, and developers
are motivated by an already working subsystem.
Component TechnologiesComponent Technologies
Overview
 Introduction
 ACME Architectural Description Language
 Java Bean Component Model
 COM, DCOM, MTS and COM+
 CORBA Component Model (CCM)
 .NET Component Model
 OSGI Component Model
Introduction
 A Short Historical Perspective
 Component Interface and Connections
 Performing Services Transparently
A Short Historical Perspective
 Programming languages, can be seen from either
 The run-time point of view or,
 The design and reuse perspective
Component Interface and
Connections
 ADLs primarily address the issues related to the
early phases of software engineering:
 Design
 Analysis
 They identify a number of concepts, such as:
 Architecture, configurations, connectors, bindings,
properties, hierarchical models, style, static analysis and
behavior.
Component Interactions
Iteractions with
traditional software entities
Interactions
with
other
components
Interact
with
other
component
Interactions with
component
infrastructure
Components
Traditional
software
entities
Component
Infrastructure
Majors steps in CBD lifecycle
Aspect Phase Actor
Interface Definition Designer
Assembly Assembly Architect
Implementation Implementation Developer
Lifecycle Packaging,
Deployment
Administrator
Framework,
run-time support
Execution End User
ACME Architectural Description Language
 Components and Ports
 Connectors and Roles
 Systems and Attachments
 Representations and Bindings
 Properties, Constraints, Types and Styles
Components and Ports
 Components
 Represent the computational elements and data
stores of a system.
 Ports
 Are the points of interaction between a
component and its environment.
Component
Port
Connectors and Roles
 Connectors
 Represent interactions between components such as
method calls or an SQL connection between a client and
a database server.
 The interface of a connector is defined as a set of
roles
Connector
Role
Systems and Attachments
 The structure of a system is specified by a set of
components, a set of connectors, and a set of
attachments.
 Attachment
 Links a component port to a connector role.
Attachement
Representations and Bindings
Connector
Component
Port
Role
Attachement
Binding
Java Bean Component Model
 Key Features
 Interface of a Component
 Implementation of a Component
 Components Assembly
 Packaging and Deployment
Key Features
 Bean Box
 "A Java Bean is a reusable software component that
can be manipulated visually in a builder tool”.
 The Java Bean was designed for the construction of
graphical user interface (GUI).
 Explicitly tailored to interact in two different contexts:
 At composition time, within the builder tool.
 At execution time, with the runtime environment.
Interface of a Component
 This model defines four types of port:
 methods,
 properties,
 event sources and
 event sinks called listeners.
Read-only property
Write-only property
Property
Method
Event source
Event sink (listener)
Bounded property
v Vetoable property
ro
wo
1 Unicast event source
Ports
Implementation of a Component
 Most bean components are implemented by a simple
Java object, the object being encapsulated in the
component, but there are more sophisticated
implementations possible.
 Wrapping a legacy object.
 Multiple-objects implementation.
 Dependency on traditional entities.
Implementations of Bean Components
Object
Method
Method call
Binding
A simple implementation A more complex implementation
Components Assembly
 Assembly is one of the key features of Java Bean
though no not specific solution is provided.
 Different ways of assembling components are
supplied.
Component-based assembly Heterogeneous assembly
Packaging and Deployment
 Java Beans define a model for packaging
components into archives.
 Includes the definition of dependency relationships between
the package items.
 The customization code can be more complex than
the component itself!
 Each package item can be marked "Design Only", so
that they can be removed in a final application.
COM, DCOM, MTS and COM+
 Interfaces and Assembly
 Implementation
 Framework
 Lifecycle
Interfaces and Assembly
 A COM interface is seen as a C++ virtual class and
takes the form of a list of data and function
declarations without associated code.
 All interfaces are descendants of the IUnknown
interface.
Component interface
Interface
Component implementation
Implementation
 A COM object is a piece of binary code, written in any
programming language, as long as the compiler
generates code following the binary interoperability
convention.
Framework
 Standard interfaces
 A simple run-time
Lifecycle
 COM, and COM+ are strictly execution time and
binary component models.
 No lifecycle issues are explicitly supported.
CORBA Component Model (CCM)
 Interface and Assembly
 Framework : The Container Approach

Lifecycle
Interface and Assembly
 A component interface is made of ports divided into:
 Facets
 Receptacles
 Event sources
 Event sinks
Component interface
Attribute
Facet
Event source
Event sink
Ports
Receptacle Segment
Component implementation
Framework : The Container Approach
 Services can be made available to components without having
to change that component’s source code.
CCM run-time infrastrucure
container
Lifecycle
 CCM is the best effort to date:
 To gather the advances made in different fields,
 To include a wide spectrum of lifecycle activities,
while still claiming efficiency and heterogeneity
capabilities,
 However, the whole does not provide the feeling
of being as “simple” as claimed.
.NET Component Model
 Interfaces and Assembly
 Implementation
 Framework
 Lifecycle
Interfaces and Assembly
 programming language approach for component
programming.
 The program contains the information related to the
relationships with other “components”, and that the
compiler is responsible for generating the information
needed at execution.
 There is no explicit concept of connection but rather the
traditional list of imported and exported resources.
Implementation
 A component (assembly) is made of modules, which
are traditional executable files (DLL).
 Modules cannot be assemblies, thus the .NET model
is not hierarchical.
Component interface
Attribute
Method
Event source
Ports
Event source
Component implementation
Modules
Framework
 .NET relies on the traditional programming
approach : the framework is seen as the language run-
time support.
 Transaction control relies on MTS.
Lifecycle
 Assemblies (and their modules) are local to an
application, and thus different DLLs with same name can
run simultaneously.
 Each assembly has a versioning information about itself
and about the assemblies it depends on.
 Version control is delegated to the dynamic loader, which selects
the “right” version.
 Significantly improve the application packaging and
deployment.
 Early lifecycles phases do not seem to have received
much attention.
OSGI Component Model
 Components
 Interface of a Bundle Component
 Assembly of Bundle Components

Implementation of a Bundle Component
Components
 A bundle use three kinds of ports to express its
interactions with
 Traditional technology
 Other components
 The run-time environment
 Bundles may listen to events published by the framework
such as the insertion of a new component in a system.
Interface of a Bundle Component
Package export
Package import
Service use
Ports
Service interface
static
dynamic
Interface of a bundle component
Assembly of Bundle Components
 A system is an evolving set of bundle
components.
 A bundle component publishes a service interface
 It can attach to it a set of properties describing its
characteristics.
 A component requires an interface for its use,
 It will select one via a query expression based on these
properties.
 This flexibility also has its counterpart
 There is no guarantee than the service will continue to
be available
Implementation of a Bundle Component
 JAR archive containing:
 Service components
 Java packages
 Other resources files
Package
Resource
Service component
Activator
Thank you!Thank you!
Mayukh Maitra (2K11/SE/038)
Saransh Garg (2K11/SE/063)
Siddharth Malhotra (2K11/SE/074)
Isha Panesar (2K11/SE/034)

More Related Content

What's hot

Presentation on uml
Presentation on umlPresentation on uml
Presentation on uml
Shruti Dalela
 
UML diagrams and symbols
UML diagrams and symbolsUML diagrams and symbols
UML diagrams and symbols
Kumar
 
2 d geometric transformations
2 d geometric transformations2 d geometric transformations
2 d geometric transformationsMohd Arif
 
Vision of cloud computing
Vision of cloud computingVision of cloud computing
Vision of cloud computing
gaurav jain
 
Attributes of Output Primitives
Attributes of Output PrimitivesAttributes of Output Primitives
Attributes of Output Primitives
Renita Santhmayora
 
Overview of UML Diagrams
Overview of UML DiagramsOverview of UML Diagrams
Overview of UML Diagrams
Manish Kumar
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
Ashesh R
 
Bezier curve & B spline curve
Bezier curve  & B spline curveBezier curve  & B spline curve
Bezier curve & B spline curve
Arvind Kumar
 
Object oriented analysis and design unit- iv
Object oriented analysis and design unit- ivObject oriented analysis and design unit- iv
Object oriented analysis and design unit- iv
Shri Shankaracharya College, Bhilai,Junwani
 
Loc and function point
Loc and function pointLoc and function point
Loc and function point
Mitali Chugh
 
3d transformation computer graphics
3d transformation computer graphics 3d transformation computer graphics
3d transformation computer graphics
University of Potsdam
 
Software Quality Attributes
Software Quality AttributesSoftware Quality Attributes
Software Quality Attributes
Hayim Makabee
 
Video display devices
Video display devicesVideo display devices
Video display devices
shalinikarunakaran1
 
computer animation languages-N.Kavitha.pptx
computer animation languages-N.Kavitha.pptxcomputer animation languages-N.Kavitha.pptx
computer animation languages-N.Kavitha.pptx
ComputerScienceDepar6
 
3D transformation in computer graphics
3D transformation in computer graphics3D transformation in computer graphics
3D transformation in computer graphics
SHIVANI SONI
 
Requirements analysis and modeling
Requirements analysis and modelingRequirements analysis and modeling
Requirements analysis and modeling
Syed Zaid Irshad
 
Polygon filling algorithm
Polygon filling algorithmPolygon filling algorithm
Polygon filling algorithm
Aparna Joshi
 
Uml Presentation
Uml PresentationUml Presentation
Uml Presentationmewaseem
 
Software engineering layers
Software engineering layersSoftware engineering layers
Software engineering layers
Self-employed
 

What's hot (20)

Presentation on uml
Presentation on umlPresentation on uml
Presentation on uml
 
UML diagrams and symbols
UML diagrams and symbolsUML diagrams and symbols
UML diagrams and symbols
 
2 d geometric transformations
2 d geometric transformations2 d geometric transformations
2 d geometric transformations
 
Vision of cloud computing
Vision of cloud computingVision of cloud computing
Vision of cloud computing
 
Attributes of Output Primitives
Attributes of Output PrimitivesAttributes of Output Primitives
Attributes of Output Primitives
 
Overview of UML Diagrams
Overview of UML DiagramsOverview of UML Diagrams
Overview of UML Diagrams
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
 
Bezier curve & B spline curve
Bezier curve  & B spline curveBezier curve  & B spline curve
Bezier curve & B spline curve
 
Object oriented analysis and design unit- iv
Object oriented analysis and design unit- ivObject oriented analysis and design unit- iv
Object oriented analysis and design unit- iv
 
Loc and function point
Loc and function pointLoc and function point
Loc and function point
 
3d transformation computer graphics
3d transformation computer graphics 3d transformation computer graphics
3d transformation computer graphics
 
Software Quality Attributes
Software Quality AttributesSoftware Quality Attributes
Software Quality Attributes
 
Video display devices
Video display devicesVideo display devices
Video display devices
 
computer animation languages-N.Kavitha.pptx
computer animation languages-N.Kavitha.pptxcomputer animation languages-N.Kavitha.pptx
computer animation languages-N.Kavitha.pptx
 
3D transformation in computer graphics
3D transformation in computer graphics3D transformation in computer graphics
3D transformation in computer graphics
 
4+1 view model
4+1 view model4+1 view model
4+1 view model
 
Requirements analysis and modeling
Requirements analysis and modelingRequirements analysis and modeling
Requirements analysis and modeling
 
Polygon filling algorithm
Polygon filling algorithmPolygon filling algorithm
Polygon filling algorithm
 
Uml Presentation
Uml PresentationUml Presentation
Uml Presentation
 
Software engineering layers
Software engineering layersSoftware engineering layers
Software engineering layers
 

Similar to Component based models and technology

UML and Software Modeling Tools.pptx
UML and Software Modeling Tools.pptxUML and Software Modeling Tools.pptx
UML and Software Modeling Tools.pptx
Nwabueze Obioma
 
Software Engineering Tools and Practices.pdf
Software Engineering Tools and Practices.pdfSoftware Engineering Tools and Practices.pdf
Software Engineering Tools and Practices.pdf
MeagGhn
 
Object oriented sad-5 part ii
Object oriented sad-5 part iiObject oriented sad-5 part ii
Object oriented sad-5 part ii
Bisrat Girma
 
Ppt slides 05
Ppt slides 05Ppt slides 05
Ppt slides 05locpx
 
INTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMSINTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMS
Ashita Agrawal
 
software engineering Architecture and design Unit 3.pptx
software engineering Architecture and design Unit 3.pptxsoftware engineering Architecture and design Unit 3.pptx
software engineering Architecture and design Unit 3.pptx
SomnathMule5
 
PHASE II.pptx
PHASE II.pptxPHASE II.pptx
PHASE II.pptx
MotiDiro1
 
Uml
UmlUml
Modeling software architecture with uml
Modeling software architecture with umlModeling software architecture with uml
Modeling software architecture with uml
International Journal of Science and Research (IJSR)
 
Uml
UmlUml
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptxUNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
LeahRachael
 
Software requirement specification Unit 3.pptx
Software requirement specification Unit 3.pptxSoftware requirement specification Unit 3.pptx
Software requirement specification Unit 3.pptx
SomnathMule5
 
Architecture and design
Architecture and designArchitecture and design
Architecture and design
himanshu_airon
 
Introduction to Object orientation , Modeling as a Design Technique Modeling ...
Introduction to Object orientation , Modeling as a Design Technique Modeling ...Introduction to Object orientation , Modeling as a Design Technique Modeling ...
Introduction to Object orientation , Modeling as a Design Technique Modeling ...
DhwaniDesai21
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principlessaurabhshertukde
 
Pattern oriented architecture for web based architecture
Pattern oriented architecture for web based architecturePattern oriented architecture for web based architecture
Pattern oriented architecture for web based architecture
shuchi tripathi
 
Introduction to Rational Rose
Introduction to Rational RoseIntroduction to Rational Rose
Introduction to Rational Rose
Munaam Munawar
 
Unit-3.doc
Unit-3.docUnit-3.doc
Unit-3.doc
chitranshidheeraj6
 
Sdlc
SdlcSdlc

Similar to Component based models and technology (20)

UML and Software Modeling Tools.pptx
UML and Software Modeling Tools.pptxUML and Software Modeling Tools.pptx
UML and Software Modeling Tools.pptx
 
Software Engineering Tools and Practices.pdf
Software Engineering Tools and Practices.pdfSoftware Engineering Tools and Practices.pdf
Software Engineering Tools and Practices.pdf
 
Object oriented sad-5 part ii
Object oriented sad-5 part iiObject oriented sad-5 part ii
Object oriented sad-5 part ii
 
Ppt slides 05
Ppt slides 05Ppt slides 05
Ppt slides 05
 
INTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMSINTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMS
 
software engineering Architecture and design Unit 3.pptx
software engineering Architecture and design Unit 3.pptxsoftware engineering Architecture and design Unit 3.pptx
software engineering Architecture and design Unit 3.pptx
 
PHASE II.pptx
PHASE II.pptxPHASE II.pptx
PHASE II.pptx
 
Uml
UmlUml
Uml
 
Modeling software architecture with uml
Modeling software architecture with umlModeling software architecture with uml
Modeling software architecture with uml
 
Uml
UmlUml
Uml
 
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptxUNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
 
Software requirement specification Unit 3.pptx
Software requirement specification Unit 3.pptxSoftware requirement specification Unit 3.pptx
Software requirement specification Unit 3.pptx
 
Architecture and design
Architecture and designArchitecture and design
Architecture and design
 
Introduction to Object orientation , Modeling as a Design Technique Modeling ...
Introduction to Object orientation , Modeling as a Design Technique Modeling ...Introduction to Object orientation , Modeling as a Design Technique Modeling ...
Introduction to Object orientation , Modeling as a Design Technique Modeling ...
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principles
 
Uml examples
Uml examplesUml examples
Uml examples
 
Pattern oriented architecture for web based architecture
Pattern oriented architecture for web based architecturePattern oriented architecture for web based architecture
Pattern oriented architecture for web based architecture
 
Introduction to Rational Rose
Introduction to Rational RoseIntroduction to Rational Rose
Introduction to Rational Rose
 
Unit-3.doc
Unit-3.docUnit-3.doc
Unit-3.doc
 
Sdlc
SdlcSdlc
Sdlc
 

More from Saransh Garg

Technical non-technical-requirement-of-cots-selection
Technical non-technical-requirement-of-cots-selectionTechnical non-technical-requirement-of-cots-selection
Technical non-technical-requirement-of-cots-selectionSaransh Garg
 
Selecting with multiple interfaces
Selecting with multiple interfacesSelecting with multiple interfaces
Selecting with multiple interfacesSaransh Garg
 
Selecting cots vendor in cbse process
Selecting cots vendor in cbse processSelecting cots vendor in cbse process
Selecting cots vendor in cbse processSaransh Garg
 
Predicting system trustworthyness
Predicting system trustworthynessPredicting system trustworthyness
Predicting system trustworthynessSaransh Garg
 
Koala component model (1)
Koala component model (1)Koala component model (1)
Koala component model (1)Saransh Garg
 
Integration in component based technology
Integration in component based technologyIntegration in component based technology
Integration in component based technologySaransh Garg
 
Embedded system.pptx
Embedded system.pptxEmbedded system.pptx
Embedded system.pptxSaransh Garg
 
Composition of cots
Composition of cotsComposition of cots
Composition of cotsSaransh Garg
 
Components in real time systems
Components in real time systemsComponents in real time systems
Components in real time systemsSaransh Garg
 
Component object model and
Component object model andComponent object model and
Component object model andSaransh Garg
 
Architecture support for component
Architecture support for component Architecture support for component
Architecture support for component Saransh Garg
 

More from Saransh Garg (17)

Technical non-technical-requirement-of-cots-selection
Technical non-technical-requirement-of-cots-selectionTechnical non-technical-requirement-of-cots-selection
Technical non-technical-requirement-of-cots-selection
 
Selecting with multiple interfaces
Selecting with multiple interfacesSelecting with multiple interfaces
Selecting with multiple interfaces
 
Selecting cots vendor in cbse process
Selecting cots vendor in cbse processSelecting cots vendor in cbse process
Selecting cots vendor in cbse process
 
Scs.pptx repaired
Scs.pptx repairedScs.pptx repaired
Scs.pptx repaired
 
Repo for cbt
Repo for cbtRepo for cbt
Repo for cbt
 
Rbce
Rbce Rbce
Rbce
 
Predicting system trustworthyness
Predicting system trustworthynessPredicting system trustworthyness
Predicting system trustworthyness
 
Koala component model (1)
Koala component model (1)Koala component model (1)
Koala component model (1)
 
Javabean1
Javabean1Javabean1
Javabean1
 
Integration in component based technology
Integration in component based technologyIntegration in component based technology
Integration in component based technology
 
Embedded system.pptx
Embedded system.pptxEmbedded system.pptx
Embedded system.pptx
 
Cots integration
Cots integrationCots integration
Cots integration
 
Corba model ppt
Corba model pptCorba model ppt
Corba model ppt
 
Composition of cots
Composition of cotsComposition of cots
Composition of cots
 
Components in real time systems
Components in real time systemsComponents in real time systems
Components in real time systems
 
Component object model and
Component object model andComponent object model and
Component object model and
 
Architecture support for component
Architecture support for component Architecture support for component
Architecture support for component
 

Recently uploaded

S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
tarandeep35
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
Delapenabediema
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
MysoreMuleSoftMeetup
 
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th SemesterGuidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Atul Kumar Singh
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
camakaiclarkmusic
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
TechSoup
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
EugeneSaldivar
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
Vikramjit Singh
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
Sandy Millin
 
A Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptxA Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptx
thanhdowork
 
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
Nguyen Thanh Tu Collection
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
Celine George
 
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
Levi Shapiro
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
heathfieldcps1
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
Peter Windle
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
timhan337
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Thiyagu K
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
Balvir Singh
 
Best Digital Marketing Institute In NOIDA
Best Digital Marketing Institute In NOIDABest Digital Marketing Institute In NOIDA
Best Digital Marketing Institute In NOIDA
deeptiverma2406
 
Azure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHatAzure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHat
Scholarhat
 

Recently uploaded (20)

S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
 
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th SemesterGuidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th Semester
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
 
A Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptxA Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptx
 
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
 
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
 
Best Digital Marketing Institute In NOIDA
Best Digital Marketing Institute In NOIDABest Digital Marketing Institute In NOIDA
Best Digital Marketing Institute In NOIDA
 
Azure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHatAzure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHat
 

Component based models and technology

  • 2. Introduction In contrast to design, which usually denotes a well-defined phase in the software life cycle between requirements engineering and implementation, modeling covers all activities ranging from analytical studies of an application domain to testing of system parts. Our experience has shown that these activities require a lot of knowledge and creativity. Thus it is not purposeful to structure modeling activities by a strict method. The process of modeling is not predictable and cannot be controlled in a generic way. Important properties of design or modeling techniques are the various visual representation forms (diagrams and descriptions) of several system aspects. We are not surprised by this focusing on design description and representation, because our view on modeling agrees that it is simply impossible to find adequate solutions just by following a strict method.
  • 3. Style of Representation The main purpose of the representation of the architecture is the documentation of (intermediate) results of the modeling process to communicate the concepts among developers, managers, programmers and anyone else. On the one hand, it should be relatively (programming) language- independent, but, on the other hand, the implementation should be rather straightforward. Due to the importance of reusability, prefabricated components should be easily embedable. Most representation techniques use primarily diagrams and charts to capture the essential model concepts. The reason is the more direct transformation of mental models into graphic images and their better intuitive comprehensibility. But graphics have their drawbacks: They tend to require enormous drawing space which is usually just not available or useful. Furthermore, transforming a graphic diagram into an executable program is often a nontrivial, error-prone task. In this respect, textual representations are superior. Unfortunately, they are less intuitive and prove inferior as thinking tools or vehicles. So our solution encompasses both, a graphical and a textual representation.
  • 4. Composition Representation The first kind of diagram or description depicts the decomposition of (part of) the system into components and how these components are coupled. Each building block has a unique name and a number of essential attributes. The attributes serve to describe the main characteristics of their components. Direct coupling expresses that one component uses another directly for some reason and that the former knows the actions of the latter. Hence all actions defined by the used part can be invoked. Indirect coupling means that the first component can only use a (typically small) set of standardized actions which are forwarded by the mediating component. Mediating components which do not offer additional functionality are represented in a collapsed form by a small circle.
  • 5. Figure depicts a component structure model consisting of three coupled components. The second attribute of component2 holds a string value, which can be written directly behind the attributes name whenever no other component refers to the string. The following textual description represents similar structure in a textual form.
  • 6. The textual description gives a better chance to annotate attributes and couplings. Components of the same kind, but with different couplings, can be described collectively in a list as shown for comp4 , comp5, comp6 . Indirect coupling is indicated by a symbolized double arrow (- >->). The purpose of the component representation is to describe the static structure of the system. To complement this picture, we need a description of the dynamic behavior, which is introduced in the next section.
  • 7. Collaboration Representation It is not possible to give one aspect absolute precedence over the other; both the composition and the collaboration model have to be developed in parallel. For equal rights reasons, we now start with a textual representation. It first describes the components by relevant actions and events which can and should be used by other components. Each action is introduced by a leading ”>” symbol; the events are marked by an appended ”>” symbol. Next, we describe all collaborations with causality relationships. A causality relationship associates an event of an originator component with an action of a receiver component. The meaning is obvious: Whenever the originator component triggers the event (because of a state change during an action execution), the associated action is invoked at the specified receiver component. Optionally, a collaboration relationship may specify a list of arguments which serve as parameters for the action. The collaboration relations of a component implemented by a generic event dictionary where the event names serve as keys and the action commands can be registered appropriately. When an event is triggered in a specific component at run time, a dispatching mechanism looks up in the event dictionary and activates one by one the action commands that are registered for the event.
  • 8. As in the composition model, equal components can be described collectively by arranging them in a list. Figure 2 depicts the dynamic collaboration model in a graphic form.
  • 9. Layered Application Architecture Composing applications out of components is not as simple as building toy models out of Lego bricks; therefore we suggest a layered architecture for highly interactive applications, with well defined functionality at each layer. For typical information system applications, our architecture model consists of four layers, as shown in Figure.
  • 10. Layer 1: User Interface Model The user interface layer consists entirely of the user interface building blocks, i.e., components which have a run-time representation on the screen. Obviously, the task of these components is visualizing of application data and control devices as well as capturing user input and triggering events for invoking the associated commands. Very often, user interface components can be changed either by direct manipulation by the user (e.g., selecting a list item) or by changing program states (e.g., updating a displayed list). Since interaction components cannot assume any functionality of the functional components, the collaboration can only be configured dynamically in one direction Layer 2: Application Model The application model consists of components which form the functional core of the application. It has to build up and open the user interface at program start. During program execution the application components have to maintain the user interface according to the program state. Actuating a control element at the user interface usually results in invoking a method of the application model. Since the application model knows the user interface model as well as the lower-level model, it establishes the dynamic collaboration relationships among all components. It is purposeful to decompose a complex application model into several independent components which either work together via dynamic collaboration or even better are just synchronized by the underlying layer.
  • 11. Layer 3: Access Model The access layer serves as mediator between the user interface or the application model on the one side and the domain model on the other side. It has two important tasks: first, synchronizing accesses to and updates of the data (i.e., broadcasting changed events to all dependent view or application components) and second, supplying view components with their data when required. Ideally, the access layer should completely hide and encapsulate the underlying data, but provide controlled access. Therefore, only values and copies of data objects should be passed through to the higher layers. Application-specific access model components can be viewed as the respective handling instances (authorities) for the domain components. Layer 4: Domain Model The primary purpose of the domain model is to store the application data during program execution. We prefer to use a structural object model, which is an object- oriented data model of the domain. The domain model provides all necessary operations for querying and manipulating the data in a basic, application- independent form. Furthermore, the domain model is responsible for checking all integrity conditions and ensuring other semantic characteristics of the data model. If separated domain models might influence each other, all manipulations should be done via the access layer. In such cases, only dynamic collaboration can be used.
  • 12. Modeling Process Activities Domain Investigation Having a sound knowledge on the problem domain is an absolute requirement for being able to develop systems that solve real problems. For acquiring problem domain knowledge, a number of techniques have been discovered and proven purposeful, including interviews, questionnaires and accumulation of artifacts (forms, reports). Additionally, use cases and scenarios can be used for describing business process activities. These utilities are documented extensively in the requirements engineering literature. Conceptual Modeling "Conceptual modeling denotes an understanding and construction process with the purpose of forming a model of some part of the world expressed by concepts and phenomena, i.e. a concept formation process. The purpose of the model may either be the understanding of some existing system or the design of some new model system." The resulting model describes or represents concepts and phenomena of the problem domain and their relationships in an informal way, so that the concepts and phenomena can be communicated among all involved persons.
  • 13. User Interface Modeling (Prototyping) A crucial step in modeling is the development of a user view of the system. This can be done by involving the experts (i.e., end users) as important participants in the process. Data Modeling Especially (but not exclusively) in information system development, data structures form a decisive factor in the development process. The data engineering community has created a rich repertoire for many aspects of data modeling. Behavior Modeling What we term behavior modeling is a consolidation and simplification of dynamic and state modeling as described by Rumbaugh et al. [Rumbaugh91]. Here we view the system model as a state automaton where each system state or mode is expressed in domain subject terms. The behavior model is formed by a list of transactions. Each transaction is described by a user command (input), a current state, the resulting visual response (output) and the resulting new or old state. Additionally, each transaction may specify its implications on the data model. It is important to understand that our behavior model views the system as a black box with a known internal state. The behavior model should closely correspond to the conceptual model of the end user of the system.
  • 14. Component Modeling Component modeling encompasses the activities of finding and identifying all components, defining attributes, defining actions, defining events, and defining couplings and collaborations of the proposed composition and collaboration model. Components are usually already indicated by nouns of the glossary. They often correspond to nouns, but in contrast to object modeling, closely related things which cannot exist independently are grouped together within one component. Adjectives which can be associated with component nouns are often candidates for attributes and verbs for actions. Since no component is an island, some attributes may refer to other components, and/or events can be identified which may be of interest to the environment Interface Definition Modeling We assume that a number of components can be reused from a library of prefabricated parts. Only components which are not already available have to be implemented by means of a program. For this purpose we suggest deriving class interface definitions out of the component model. Developing the class definitions requires some experience to find good compromises between optimal suitability for the system at hand and enough flexibility for future changes or reuse engagements for the component. Implementation and Test Perhaps surprisingly, these activities belong to the modeling activities, too. But creating an executable system in parallel with other modeling activities has the advantage that many hindsights gained from programming can improve the overall process and the product. Additionally, feasibility or efficiency problems of any kind arise much earlier, and developers are motivated by an already working subsystem.
  • 16. Overview  Introduction  ACME Architectural Description Language  Java Bean Component Model  COM, DCOM, MTS and COM+  CORBA Component Model (CCM)  .NET Component Model  OSGI Component Model
  • 17. Introduction  A Short Historical Perspective  Component Interface and Connections  Performing Services Transparently
  • 18. A Short Historical Perspective  Programming languages, can be seen from either  The run-time point of view or,  The design and reuse perspective
  • 19. Component Interface and Connections  ADLs primarily address the issues related to the early phases of software engineering:  Design  Analysis  They identify a number of concepts, such as:  Architecture, configurations, connectors, bindings, properties, hierarchical models, style, static analysis and behavior.
  • 20. Component Interactions Iteractions with traditional software entities Interactions with other components Interact with other component Interactions with component infrastructure Components Traditional software entities Component Infrastructure
  • 21. Majors steps in CBD lifecycle Aspect Phase Actor Interface Definition Designer Assembly Assembly Architect Implementation Implementation Developer Lifecycle Packaging, Deployment Administrator Framework, run-time support Execution End User
  • 22. ACME Architectural Description Language  Components and Ports  Connectors and Roles  Systems and Attachments  Representations and Bindings  Properties, Constraints, Types and Styles
  • 23. Components and Ports  Components  Represent the computational elements and data stores of a system.  Ports  Are the points of interaction between a component and its environment. Component Port
  • 24. Connectors and Roles  Connectors  Represent interactions between components such as method calls or an SQL connection between a client and a database server.  The interface of a connector is defined as a set of roles Connector Role
  • 25. Systems and Attachments  The structure of a system is specified by a set of components, a set of connectors, and a set of attachments.  Attachment  Links a component port to a connector role. Attachement
  • 27. Java Bean Component Model  Key Features  Interface of a Component  Implementation of a Component  Components Assembly  Packaging and Deployment
  • 28. Key Features  Bean Box  "A Java Bean is a reusable software component that can be manipulated visually in a builder tool”.  The Java Bean was designed for the construction of graphical user interface (GUI).  Explicitly tailored to interact in two different contexts:  At composition time, within the builder tool.  At execution time, with the runtime environment.
  • 29. Interface of a Component  This model defines four types of port:  methods,  properties,  event sources and  event sinks called listeners. Read-only property Write-only property Property Method Event source Event sink (listener) Bounded property v Vetoable property ro wo 1 Unicast event source Ports
  • 30. Implementation of a Component  Most bean components are implemented by a simple Java object, the object being encapsulated in the component, but there are more sophisticated implementations possible.  Wrapping a legacy object.  Multiple-objects implementation.  Dependency on traditional entities.
  • 31. Implementations of Bean Components Object Method Method call Binding A simple implementation A more complex implementation
  • 32. Components Assembly  Assembly is one of the key features of Java Bean though no not specific solution is provided.  Different ways of assembling components are supplied. Component-based assembly Heterogeneous assembly
  • 33. Packaging and Deployment  Java Beans define a model for packaging components into archives.  Includes the definition of dependency relationships between the package items.  The customization code can be more complex than the component itself!  Each package item can be marked "Design Only", so that they can be removed in a final application.
  • 34. COM, DCOM, MTS and COM+  Interfaces and Assembly  Implementation  Framework  Lifecycle
  • 35. Interfaces and Assembly  A COM interface is seen as a C++ virtual class and takes the form of a list of data and function declarations without associated code.  All interfaces are descendants of the IUnknown interface. Component interface Interface Component implementation
  • 36. Implementation  A COM object is a piece of binary code, written in any programming language, as long as the compiler generates code following the binary interoperability convention.
  • 38. Lifecycle  COM, and COM+ are strictly execution time and binary component models.  No lifecycle issues are explicitly supported.
  • 39. CORBA Component Model (CCM)  Interface and Assembly  Framework : The Container Approach  Lifecycle
  • 40. Interface and Assembly  A component interface is made of ports divided into:  Facets  Receptacles  Event sources  Event sinks Component interface Attribute Facet Event source Event sink Ports Receptacle Segment Component implementation
  • 41. Framework : The Container Approach  Services can be made available to components without having to change that component’s source code. CCM run-time infrastrucure container
  • 42. Lifecycle  CCM is the best effort to date:  To gather the advances made in different fields,  To include a wide spectrum of lifecycle activities, while still claiming efficiency and heterogeneity capabilities,  However, the whole does not provide the feeling of being as “simple” as claimed.
  • 43. .NET Component Model  Interfaces and Assembly  Implementation  Framework  Lifecycle
  • 44. Interfaces and Assembly  programming language approach for component programming.  The program contains the information related to the relationships with other “components”, and that the compiler is responsible for generating the information needed at execution.  There is no explicit concept of connection but rather the traditional list of imported and exported resources.
  • 45. Implementation  A component (assembly) is made of modules, which are traditional executable files (DLL).  Modules cannot be assemblies, thus the .NET model is not hierarchical. Component interface Attribute Method Event source Ports Event source Component implementation Modules
  • 46. Framework  .NET relies on the traditional programming approach : the framework is seen as the language run- time support.  Transaction control relies on MTS.
  • 47. Lifecycle  Assemblies (and their modules) are local to an application, and thus different DLLs with same name can run simultaneously.  Each assembly has a versioning information about itself and about the assemblies it depends on.  Version control is delegated to the dynamic loader, which selects the “right” version.  Significantly improve the application packaging and deployment.  Early lifecycles phases do not seem to have received much attention.
  • 48. OSGI Component Model  Components  Interface of a Bundle Component  Assembly of Bundle Components  Implementation of a Bundle Component
  • 49. Components  A bundle use three kinds of ports to express its interactions with  Traditional technology  Other components  The run-time environment  Bundles may listen to events published by the framework such as the insertion of a new component in a system.
  • 50. Interface of a Bundle Component Package export Package import Service use Ports Service interface static dynamic Interface of a bundle component
  • 51. Assembly of Bundle Components  A system is an evolving set of bundle components.  A bundle component publishes a service interface  It can attach to it a set of properties describing its characteristics.  A component requires an interface for its use,  It will select one via a query expression based on these properties.  This flexibility also has its counterpart  There is no guarantee than the service will continue to be available
  • 52. Implementation of a Bundle Component  JAR archive containing:  Service components  Java packages  Other resources files Package Resource Service component Activator
  • 53. Thank you!Thank you! Mayukh Maitra (2K11/SE/038) Saransh Garg (2K11/SE/063) Siddharth Malhotra (2K11/SE/074) Isha Panesar (2K11/SE/034)