The document discusses various aspects of component-based modeling and technologies. It begins by introducing component-based models and their importance. It then discusses in detail several component technologies including:
- The ACME architectural description language which uses components, ports, connectors, roles, systems and attachments.
- The Java Bean component model which defines components using methods, properties, events and listeners for interfaces and allows various implementations and assembly approaches.
- COM/DCOM/MTS which uses interfaces as virtual classes and components as binary code with a simple runtime.
- CORBA's component model which uses facets, receptacles, events for interfaces and a container approach for the runtime.
- .NET which uses
object oriented analysis and design.
requirement analysis.
what is requirement?
types of requirement.
functional requirements.
nonfunctional requirements.
object oriented analysis and design.
requirement analysis.
what is requirement?
types of requirement.
functional requirements.
nonfunctional requirements.
The quality of software systems may be expressed as a collection of Software Quality Attributes. When the system requirements are defined, it is essential also to define what is expected regarding these quality attributes, since these expectations will guide the planning of the system architecture and design.
Software quality attributes may be classified into two main categories: static and dynamic. Static quality attributes are the ones that reflect the system’s structure and organization. Examples of static attributes are coupling, cohesion, complexity, maintainability and extensibility. Dynamic attributes are the ones that reflect the behavior of the system during its execution. Examples of dynamic attributes are memory usage, latency, throughput, scalability, robustness and fault-tolerance.
Following the definitions of expectations regarding the quality attributes, it is essential to devise ways to measure them and verify that the implemented system satisfies the requirements. Some static attributes may be measured through static code analysis tools, while others require effective design and code reviews. The measuring and verification of dynamic attributes requires the usage of special non-functional testing tools such as profilers and simulators.
In this talk I will discuss the main Software Quality attributes, both static and dynamic, examples of requirements, and practical guidelines on how to measure and verify these attributes.
Requirements analysis, also called requirements engineering, is the process of determining user expectations for a new or modified product. These features, called requirements, must be quantifiable, relevant and detailed. In software engineering, such requirements are often called functional specifications. Requirements analysis is an important aspect of project management.
WHAT IS SOFTWARE ENGINEERING?
According to IEEE software engineering is defined as the application of the systematic, discipline, quantifiable approach to development of an operation and maintenance of software.
The quality of software systems may be expressed as a collection of Software Quality Attributes. When the system requirements are defined, it is essential also to define what is expected regarding these quality attributes, since these expectations will guide the planning of the system architecture and design.
Software quality attributes may be classified into two main categories: static and dynamic. Static quality attributes are the ones that reflect the system’s structure and organization. Examples of static attributes are coupling, cohesion, complexity, maintainability and extensibility. Dynamic attributes are the ones that reflect the behavior of the system during its execution. Examples of dynamic attributes are memory usage, latency, throughput, scalability, robustness and fault-tolerance.
Following the definitions of expectations regarding the quality attributes, it is essential to devise ways to measure them and verify that the implemented system satisfies the requirements. Some static attributes may be measured through static code analysis tools, while others require effective design and code reviews. The measuring and verification of dynamic attributes requires the usage of special non-functional testing tools such as profilers and simulators.
In this talk I will discuss the main Software Quality attributes, both static and dynamic, examples of requirements, and practical guidelines on how to measure and verify these attributes.
Requirements analysis, also called requirements engineering, is the process of determining user expectations for a new or modified product. These features, called requirements, must be quantifiable, relevant and detailed. In software engineering, such requirements are often called functional specifications. Requirements analysis is an important aspect of project management.
WHAT IS SOFTWARE ENGINEERING?
According to IEEE software engineering is defined as the application of the systematic, discipline, quantifiable approach to development of an operation and maintenance of software.
UML stands for Unified Modelling Language.
UML is a standard language for specifying, visualizing, constructing, and documenting a system in which software represents the most significant part.
UML is different from the other common programming languages like C++, Java, COBOL etc.
UML is a pictorial language used to make software blue prints.
UML can serve as a central notation for software development process. Using UML helps project teams communicate, explore potential designs, and validate the architectural designs of software.
UML diagrams are made using notation of things and relationships.
The building blocks of UML can be defined as:
Things
Relationships
Diagrams
Things: Things are the most important building blocks of UML. Things can be:
Structural
Behavioral
Grouping
Annotational
The Structural things define the static part of the model. They represent physical and conceptual elements. Following are the brief descriptions of the structural things.
Class: Class represents set of objects having similar responsibilities.
Interface: Interface defines a set of operations which specify the responsibility of a class.
Collaboration: Collaboration defines interaction between elements.
Use case: Use case represents a set of actions performed by a system for a specific goal.
Component: Component describes physical part of a system.
Node: A node can be defined as a physical element that exists at run time.
A behavioral thing consists of the dynamic parts of UML models. Following are the behavioral things:
Interaction: Interaction is defined as a behavior that consists of a group of messages exchanged among elements to accomplish a specific task.
State machine: State machine is useful when the state of an object in its life cycle is important. It defines the sequence of states an object goes through in response to events. Events are external factors responsible for state change.
Read| The latest issue of The Challenger is here! We are thrilled to announce that our school paper has qualified for the NATIONAL SCHOOLS PRESS CONFERENCE (NSPC) 2024. Thank you for your unwavering support and trust. Dive into the stories that made us stand out!
Macroeconomics- Movie Location
This will be used as part of your Personal Professional Portfolio once graded.
Objective:
Prepare a presentation or a paper using research, basic comparative analysis, data organization and application of economic information. You will make an informed assessment of an economic climate outside of the United States to accomplish an entertainment industry objective.
Introduction to AI for Nonprofits with Tapp NetworkTechSoup
Dive into the world of AI! Experts Jon Hill and Tareq Monaur will guide you through AI's role in enhancing nonprofit websites and basic marketing strategies, making it easy to understand and apply.
2024.06.01 Introducing a competency framework for languag learning materials ...Sandy Millin
http://sandymillin.wordpress.com/iateflwebinar2024
Published classroom materials form the basis of syllabuses, drive teacher professional development, and have a potentially huge influence on learners, teachers and education systems. All teachers also create their own materials, whether a few sentences on a blackboard, a highly-structured fully-realised online course, or anything in between. Despite this, the knowledge and skills needed to create effective language learning materials are rarely part of teacher training, and are mostly learnt by trial and error.
Knowledge and skills frameworks, generally called competency frameworks, for ELT teachers, trainers and managers have existed for a few years now. However, until I created one for my MA dissertation, there wasn’t one drawing together what we need to know and do to be able to effectively produce language learning materials.
This webinar will introduce you to my framework, highlighting the key competencies I identified from my research. It will also show how anybody involved in language teaching (any language, not just English!), teacher training, managing schools or developing language learning materials can benefit from using the framework.
Model Attribute Check Company Auto PropertyCeline George
In Odoo, the multi-company feature allows you to manage multiple companies within a single Odoo database instance. Each company can have its own configurations while still sharing common resources such as products, customers, and suppliers.
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...Levi Shapiro
Letter from the Congress of the United States regarding Anti-Semitism sent June 3rd to MIT President Sally Kornbluth, MIT Corp Chair, Mark Gorenberg
Dear Dr. Kornbluth and Mr. Gorenberg,
The US House of Representatives is deeply concerned by ongoing and pervasive acts of antisemitic
harassment and intimidation at the Massachusetts Institute of Technology (MIT). Failing to act decisively to ensure a safe learning environment for all students would be a grave dereliction of your responsibilities as President of MIT and Chair of the MIT Corporation.
This Congress will not stand idly by and allow an environment hostile to Jewish students to persist. The House believes that your institution is in violation of Title VI of the Civil Rights Act, and the inability or
unwillingness to rectify this violation through action requires accountability.
Postsecondary education is a unique opportunity for students to learn and have their ideas and beliefs challenged. However, universities receiving hundreds of millions of federal funds annually have denied
students that opportunity and have been hijacked to become venues for the promotion of terrorism, antisemitic harassment and intimidation, unlawful encampments, and in some cases, assaults and riots.
The House of Representatives will not countenance the use of federal funds to indoctrinate students into hateful, antisemitic, anti-American supporters of terrorism. Investigations into campus antisemitism by the Committee on Education and the Workforce and the Committee on Ways and Means have been expanded into a Congress-wide probe across all relevant jurisdictions to address this national crisis. The undersigned Committees will conduct oversight into the use of federal funds at MIT and its learning environment under authorities granted to each Committee.
• The Committee on Education and the Workforce has been investigating your institution since December 7, 2023. The Committee has broad jurisdiction over postsecondary education, including its compliance with Title VI of the Civil Rights Act, campus safety concerns over disruptions to the learning environment, and the awarding of federal student aid under the Higher Education Act.
• The Committee on Oversight and Accountability is investigating the sources of funding and other support flowing to groups espousing pro-Hamas propaganda and engaged in antisemitic harassment and intimidation of students. The Committee on Oversight and Accountability is the principal oversight committee of the US House of Representatives and has broad authority to investigate “any matter” at “any time” under House Rule X.
• The Committee on Ways and Means has been investigating several universities since November 15, 2023, when the Committee held a hearing entitled From Ivory Towers to Dark Corners: Investigating the Nexus Between Antisemitism, Tax-Exempt Universities, and Terror Financing. The Committee followed the hearing with letters to those institutions on January 10, 202
Embracing GenAI - A Strategic ImperativePeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
Honest Reviews of Tim Han LMA Course Program.pptxtimhan337
Personal development courses are widely available today, with each one promising life-changing outcomes. Tim Han’s Life Mastery Achievers (LMA) Course has drawn a lot of interest. In addition to offering my frank assessment of Success Insider’s LMA Course, this piece examines the course’s effects via a variety of Tim Han LMA course reviews and Success Insider comments.
Operation “Blue Star” is the only event in the history of Independent India where the state went into war with its own people. Even after about 40 years it is not clear if it was culmination of states anger over people of the region, a political game of power or start of dictatorial chapter in the democratic setup.
The people of Punjab felt alienated from main stream due to denial of their just demands during a long democratic struggle since independence. As it happen all over the word, it led to militant struggle with great loss of lives of military, police and civilian personnel. Killing of Indira Gandhi and massacre of innocent Sikhs in Delhi and other India cities was also associated with this movement.
Safalta Digital marketing institute in Noida, provide complete applications that encompass a huge range of virtual advertising and marketing additives, which includes search engine optimization, virtual communication advertising, pay-per-click on marketing, content material advertising, internet analytics, and greater. These university courses are designed for students who possess a comprehensive understanding of virtual marketing strategies and attributes.Safalta Digital Marketing Institute in Noida is a first choice for young individuals or students who are looking to start their careers in the field of digital advertising. The institute gives specialized courses designed and certification.
for beginners, providing thorough training in areas such as SEO, digital communication marketing, and PPC training in Noida. After finishing the program, students receive the certifications recognised by top different universitie, setting a strong foundation for a successful career in digital marketing.
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.
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