SlideShare a Scribd company logo
Copyright © 2001 Glen B. Alleman, Niwot Colorado
INVERSION OF CONTROL
The Impedance Mismatch in Integrated Engineering Design Systems
This technical note describes an issue in the integra-
tion of commercial off the shelf (COTS) components.
This issue is a member of the Impedance Mismatch
problems found [7]
when commercial off the shelf
components are assembled into systems.
This mismatch occurs when event, control sequence,
or data semantics of two or more participating appli-
cation domains are mismatched.
During the system integration process the impedance
mismatch must be addressed through some means,
either through an integration layer which hides the
mismatch or through an integrating service, such as
CORBA, which facilitates the impedance adaptation
between the applications.
Separation of Concerns
The primary issue in defining an integration architec-
ture is the ability to separate the concerns of each
application component, while simultaneously creating
an integrated system. This separation has several di-
mensions. Without this ability to separate the con-
cerns, the resulting system will not only be tightly
coupled and resist change and enhancement, but fail-
ures in one portion of the system will be propagated
to other portions of the system, across these tightly
coupled boundaries.
A Simple Manufacturing Example
A simple example of the inversion of control prob-
lem can be found when CAD, ERP, PDM and
product configuration systems are integrated. Figure 2
describes a very simple set of integration components
commonly found in the manufacturing domain.
Manufacturing – ERP systems provide the data
and work flow management for manufacturing
processes. Manufacturing Bills of Material are
maintained by the ERP system. These BOMs
describe the as manufactured entities. In most
cases these BOMs must have part numbers in order
to be identified by manufacturing and purchasing
Engineering – PDM systems provide the data and
process management for as designed elements of the
product line. Part numbers need not be assigned to
work in progress engineering entities. Before an en-
gineered product is released for manufacturing,
some type of Bill of Material is needed. This BOM
is usually generated through a configuration process.
Design – CAD systems provide tools needed to
assemble and analyze products in response to cus-
tomer needs. These tools provide geometric as well
as attribute based design. Parametric drawing en-
gines are used to render different products from
similar underlying geometric entities. The paramet-
ric assembly of products generate Bills of Material
as well as other derived information from a model
rather than from a list of elements in a static data-
base.
Product Structure – has been the traditional roles of
Product Data Management (PDM) systems. With
the introduction of engineer to order business mod-
els, Configurators now provide the intelligence to
construct products from standard as well as engi-
neered components. Change control is the primary
role of the PDM system.
Assembling these four systems into an integrated solution
exposes the inversion of control problem. Each COTS
product assumes it initially operates as a stand alone entity
with control, data, and semantics residing within the prod-
uct. This is a natural result since each product was purpose
built to solve a specific set of problems, targeted to specific
industries. The ownership of data, process, and semantics is
a natural outcome of the product marketing approach of
each vendor.
Technical Note
2001.13
Copyright © 2001 Glen B. Alleman, Niwot Colorado
Four Dimensions of Integrated Systems
To understand how the impedance mismatch arises in
a traditional system integration, we must identify the
core cause of this mismatch and the dimensions of
the solution.
The problem introduced by component–based systems
is that components embed assumptions about the
architectural and operational context in which they
operate.
Move Apart Separation Motivation
Data Trans-
port
The movement of data is
seperated from the actual
data itself. This allows multi-
ple mechanisms for
connecting applications do-
mains to be used without
regard to the format or form
of the data.
Publish Sub-
scribe
Applications that publish
events know nothing of ap-
plications subscribing to
events.
Internal
Event
External
Event
Private events change the
operational flow of an appli-
cation without affecting ex-
ternal processes. Public
events synchronize large–
grained processes without
impacting internal fine–
grained processes.
Internal
Data
External
Data
Data transformations take
place across application
boundaries only when
needed.
Connec-
tion
Delivery The delivery of messages
and events is seperated
from the management of the
connection over which the
delivery process takes
place.
Figure 1 – Separating Concerns in Integrated Systems
These assumptions often conflict with the architecture
of the integrated meta–system and with the assump-
tions of the components of other parts of the sys-
tem. [1]
1
“Discovering a System Modernization Decision Framework:
A Case Study in Migrating to Distributed Object Technol-
ogy,” Evan Wallace, Paul Clements, and Kurt Wallnau. NIST
Interagency Report, Software Engineering Institute. The selec-
tion of a distributed object technology may appear as a sim-
ple process. It’s what everyone is doing. This is not the case
when the business domain experience is grounded in a cen-
tralized “mainframe” culture. Many of the process, state, and
data assumptions of the mainframe world are no longer valid
There are four dimensions to this impedance mismatch: [2]
Control integration mismatch – describes how com-
ponents make requests from other components.
The mismatch occurs when the thread of control is
maintained in each application domain, with no ex-
ternal means of interrupting the thread of control
or causing the thread of control to be redirected
by outside means. Examples of this control mis-
match in the Configurator include:
The AutoCAD domain controlling the creation
and updating of design objects in the configura-
tor database. Once the design object has been
created or updated, other applications must be
signaled that this change has occurred. This sig-
naling needs to be done through some means
shared by all the applications participating in the
integration.
The PDM domain controlling the product struc-
ture and revision control of this structure. Engi-
neer to order product make use of product
structure information. This information defines
how individual components can be assembled
(or valid in different ways) in the distributed object world. One
simple example of this impact is the design and implementation of
the inter–process communication infrastructure. Timing, communi-
cation reliability, remote object method invocation, fault detection
and recovery are all system architecture issues that must be ad-
dressed in a different manner than the previous mainframe systems.
It could be argued that given the fault tolerant nature of the engi-
neering and manufacturing systems, the underlying problems are
the same. However, it has been shown in the literature as well as
field experience that there are a unique set of issues found in the
distributed object architecture that are not found in the centralized
processor architecture.
2
The fundamental problem in the integration of heterogeneous sys-
tems is how to normalize the semantics of the data and process
flow. The following is just a sample of the research and practices
information available on the subject.
“What Do Groups Need? A Proposed Set of Generic Groupware
Requirements,” Munir Mandviwalla and Lorne Olfman, ACM
Transactions of Computer–Human Interaction, 1(3), September 1994,
pp. 245–268.
“Federating Heterogeneous Workflow Systems,” Andreas Geppart,
et al, Technical Report 98.05, Department of Computer Science,
University of Zurich.
“Distributed Data Management in Workflow Environments,” G.
Alonso, B. Reinwald, and C. Mohan, IBM Almaden Research Center
Report. www.almaden.ibm.com.
“An Overview of Workflow Management: From Process Modeling
to Workflow Automation Infrastructure,” Dimmitrios George Ka-
opoulos, Mark Hornick, and Amit Sheth, Distributed and Parallel
Databases Volume 3, 1995, pp. 119–153.
“Some Practical Advice for Dealing with Semantic Heterogeneity in
Federated Database Systems,” V. Ventrone, The MITRE Corporation,
Bedford, MA and S. Heiler, GTE Laboratories, Waltham MA.
“Workflow based Applications,” F. Leymann and D. Roller, IBM
Systems Journal, 36(1), 1997, pp. 102
Copyright © 2001 Glen B. Alleman, Niwot Colorado
into units or other high level deliverables.
Changes in the product structure must be
communicated to the configuration process,
but these changes must not undo configura-
tions that have taken place in the past.
Data integration mismatch – describes how
components make data available to other
components. The mismatch occurs when the
semantics of the data elements are not normal-
ized.
Process integration mismatch – describes the
end–user processes supported by a collection
of components. The mismatch occurs when
the workflow processes within two domains
do not share the same semantics. This is actu-
ally an interoperability problem between the
two process domains.
Each application domain has been created
assuming it is the center of some process.
Although each application is provided with
an API, the process orientation of this API
assumes the thread of control is maintained
by the application.
The Configurator creates an integrated
thread of control environment in which
each application must be capable of relin-
quishing control while it is cooperating
with other applications.
This transformation from control–centric to
cooperation–centric takes place through the
shared event signaling and control flow sys-
tem.
Presentation integration mismatch – describes
how end–users interact with the system
through the User Interface. This mismatch oc-
curs when the user interface elements of the
system contain differing semantics but similar
format and syntax. The contents of tables,
fields, command buttons, and other User In-
terface elements are not normalized with the
underlying database schema.
There are several primary user interfaces in
Configurator. AutoCAD, the PDM system,
the rule definition interface, the BOM tex-
tual interface.
Each of these User Interfaces presents and
application domain–centric view of data
and process.
Engineering Design
Manufacturing
Product
Structure
Configurator
Figure 2 – Integrating Diverse System Components
In this heterogeneous COTS environment:
Each application domain makes use of a specific
implementation paradigm. The interactive process of
configuring a product makes use of local and global
data. Sharing this data and synchronizing the design
and editing process creates opportunities for imped-
ance mismatches. Each application assumes this pri-
vate paradigm can be syndicated to other applica-
tion domains. This assumption is rarely true, since
the semantics of the data and control processes are
unique for each application. [3]
Each application domain assumes it is independent
from other application domains. This independence
includes the flow of control within the domain as
well as the announcement of events and changes in
state across the domain boundaries. This domain
independence creates an inversion of control or the
lack of explicit control across these application
boundaries. [4]
This inversion of control is a funda-
mental architectural flaw found in tightly coupled
integration architectures, where multiple information
producers and consumers are present.
Each application domain makes use of unique file
formats and communication protocols. Engineering
systems, design systems, manufacturing systems,
sales & marketing systems and the integration
components which connect them together, all pro-
3
“Integrating Islands of Automation,” Michael Stonebraker, eaiJournal,
September / October 1999. www.eaijournal.com.
4
“Object–Oriented Application Frameworks,” Mohamed E. Fayad and
Douglas C. Schmidt, Communications of the ACM, 40(10), October
1997, pp. 32–38.
Copyright © 2001 Glen B. Alleman, Niwot Colorado
vide different file formats and protocols. In
some cases, the format of the data is also
unique to the operating system or the under-
lying database management system. [6]
The event signaling, thread control, exception
handling, and other low level software behav-
iors are difficult to control – even if the sys-
tems are intentionally designed to be compati-
ble. [5]
Each application domain assumes a
unique mechanism for controlling the thread
of execution. The synchronization of these
execution threads across application boundaries
is one of most the difficult problems in the
integration of heterogeneous systems.
Exceptions are reported within each applica-
tion domain using the semantics of that appli-
cation. Simple error codes and user response
processes are unique to each domain. The uni-
fication of the exception semantics and the
handling of the exceptions is a difficult and
sometimes intractable task. [6]
In this heterogeneous integration environment, the
influence of each domain – as well as many other
intangible influences – creates an impedance mismatch
between the COTS components. [7]
The challenge for
the system architect as well as the system integrator
is to define a mechanism that integrates the disparate
components while maintaining their unique function-
ality. [8]
5
“Michael Stonebraker on the Importance of Data Integration,”
Lee Garber, IEEE IT Pro, May / June, 1999
6
“Framework Integration: Problems, Causes, Solutions,” Mi-
chael Mattsson, Jan Bosch, and Mohamed E. Fayad, Com-
munications of the ACM, 42(10), October 1999, pp. 81–87.
7
The term impedance mismatch is widely used in the database
domain to describe the mismatch between SQL database
technologies and Object Oriented technologies. This mis-
match comes about through the query and updating proc-
esses that are distinctly different in their semantics. In addi-
tion, the concept of architectural mismatch is now well un-
derstood and cause of many of the problems found in the
industry. To understand this issue and how it affects the de-
sign of UNA some background materials are available and
should be read by anyone intending the make changes to
the UNA. “Detecting Architectural Mismatches During Sys-
tem Composition,” Cristina Gacek, Center for Software En-
gineering, Computer Science Department, University of
Southern California, USC/CSE–97–TR–506, July 8, 1997,
“Composing Heterogeneous Software Architectures,” Ahmed
Abd–el–Shaft Abd–Allah, PhD Thesis, University of Southern
California, August 1996 and “Attribute–Based Architectural
Styles,” mark Klein and Rick Kazman, Software Engineering
Institute, CMU/SEI–99–TR–022, October 1999.
8
“Architectural Mismatch, or Why It’s Hard to Build Systems
Out Of Existing Parts,” D. Garlan, R. Allen, and J. Ocker-
In addition to the impedance mismatch between the COTS
components, these components are also undergoing con-
tinuous change. [9]
These changes create a moving target for
the seamless integration of heterogeneous systems.
What Does This Mean in the End?
Each component in the integrated system presents a unique
challenge to the system architect as well as the develop-
ment staff. Starting with enterprise application integration
platform, a loosely coupled architecture can be used to
create a federated system of components, rather than a
tightly integrated collection of components.
This federation strategy has distinct advantages over the
traditional tight integration or monolithic database architec-
tures found in competing products:
Individual components need not know about other
components in the federation. A shared object re-
pository can be used to connect the business do-
mains. Event and process synchronization is pro-
vided through a publish and subscribe mechanism.
Content created in one domain remains in that
domain until it is needed in another domain.
An integration interface component provides a
mechanism to expose the functionality of an appli-
cation domain without creating a physical connec-
tion between these domains.
Business Drivers for Federated Systems
In order to address the integration (federation) business
drivers for engineering and manufacturing systems, an ar-
chitecture is needed that provides an economically viable
product. These drivers include:
COTS based user applications that provide the best
of breed capabilities without constraining other ap-
plications.
Data format transformation demands for internal
formats that must be exchanged between the best
of breed applications.
Real–time aspects of design and configurations as
raw input to the system.
All the non–functional requirements of a 24 × 7
system.
bloom, Proceedings of ICSE ‘95, IEEE Computer Society Press,
April 23–30 1995, pp. 179–185.
9
Based Software Development,” Will Tracz, Crosstalk, January 2000,
pp. 4–8. www.stsc.hill.af.mil/CrossTalk/index.asp.
Copyright © 2001 Glen B. Alleman, Niwot Colorado
Operational Drivers for Federated Sys-
tems
The reliance on distributed object technologies for the
integration of COTS systems creates operational ex-
pectations not normally found in traditional engineer-
ing and manufacturing systems. These include:
Performance management:
The collection of performance metrics from
applications across large–grained boundaries.
Application response management for each
application domain.
The ability to start and stop application
server objects depending on the processing
load.
Fault Management:
Detection – of the fault, its source, and its
cause.
Tracking – of faults to identify unreliable
components.
Reporting – faults to support administra-
tion of the system.
Configuration management:
Dynamic configuration of server and client
objects to meet changing business applica-
tion needs.
Rearrange the server objects to meet
changes in load.
System management software:
Software distribution and installation proc-
esses.
Enterprise operations console to manage all
object and processes.
Application management software:
Multi–level application lifecycle manage-
ment – provides the means to manage
fine–grained objects, server processes, the
dependencies between these processes, and
the introduction on non–intrusive 3rd
party
applications.
Performance monitoring across interfaces
and within the application domains.
Event management for coordinated execu-
tion of distributed processes.
Object Technology Integration Platforms
An object can be thought of as an entity that re-
sponds to a set of messages. A given message causes
an object to execute a given set of instructions. In
reality, an object is a piece of code that owns things called
attributes and provides services through methods. Objects
have three properties that make them very useful for inte-
grating heterogeneous systems – which is the principal
problem in the publishing system application domain.
Encapsulation – which allows an object to manage
its own resources and limit the visibility into its
behavior. An object publishes its interface that de-
fines how other objects or applications can interact
with it. However, the actual processing that takes
place inside the object is not visible to the outside
world. The object’s implementation is encapsulated –
hidden from public view.
Polymorphism – which is a fancy way of saying
that the same method can do different things, de-
pending on the class that implements it. Objects in
different classes can receive the same message from
their clients, yet react in different ways.
Inheritance – is the mechanism that allows pro-
grams to create child classes – known as subclasses
or derived classes – from existing parent classes.
Child classes inherit their parent’s methods and data
structures.
Many benefits are cited for object–oriented development,
often to a degree that is unrealistic. [10]
With the proper
investment in architecture and design there are tangible
benefits to the object–oriented programming model, the
components that results from this model and the frame-
work in which the components exist.
Conclusion
Without a clear strategy to deal with this integration im-
pedance mismatch upfront, the gaps created will be revealed
later in the integration process. These gaps are expensive to
close, difficult to locate in a complex system, and reduce
the reliability, performance, and robustness of the overall
system.
10
“Pitfalls of Object–Oriented Development,” Bruce F. Webster,
M&T Books, 1995. Although it is somewhat dated, this text is one
of those must read works for every developer, manager, and prod-
uct specialist. It describes the myths of object–oriented development,
the consequences of these myths, and the prevention of the prob-
lems resulting from taking the myths at face value.

More Related Content

What's hot

A Guide for Capital Project Mamnagers
A Guide for Capital Project MamnagersA Guide for Capital Project Mamnagers
A Guide for Capital Project Mamnagers
Glen Alleman
 
Software Project Planning V
Software Project Planning VSoftware Project Planning V
Software Project Planning V
Gagan Deep
 
How Should We Estimate Agile Software Development Projects and What Data Do W...
How Should We Estimate Agile Software Development Projects and What Data Do W...How Should We Estimate Agile Software Development Projects and What Data Do W...
How Should We Estimate Agile Software Development Projects and What Data Do W...
Glen Alleman
 
Guide to Software Estimation
Guide to Software EstimationGuide to Software Estimation
Guide to Software Estimation
Santosh Ramachandran
 
Agile project management is systems management
Agile project management is systems managementAgile project management is systems management
Agile project management is systems managementGlen Alleman
 
Agile in an ANSI-748-C environment
Agile in an ANSI-748-C environmentAgile in an ANSI-748-C environment
Agile in an ANSI-748-C environment
Glen Alleman
 
Probabilistic Schedule and Cost Analysis
Probabilistic Schedule and Cost AnalysisProbabilistic Schedule and Cost Analysis
Probabilistic Schedule and Cost Analysis
Glen Alleman
 
Forecasting cost and schedule performance
Forecasting cost and schedule performanceForecasting cost and schedule performance
Forecasting cost and schedule performance
Glen Alleman
 
What Makes a Good Concept of Operations?
What Makes a Good Concept of Operations?What Makes a Good Concept of Operations?
What Makes a Good Concept of Operations?
Glen Alleman
 
Establishing schedule margin using monte carlo simulation
Establishing schedule margin using monte carlo simulation Establishing schedule margin using monte carlo simulation
Establishing schedule margin using monte carlo simulation
Glen Alleman
 
Cpm 200 C technical performance measures ipm2016
Cpm 200 C technical performance measures ipm2016Cpm 200 C technical performance measures ipm2016
Cpm 200 C technical performance measures ipm2016
Glen Alleman
 
Heliotropic Abundance
Heliotropic AbundanceHeliotropic Abundance
Heliotropic Abundance
Glen Alleman
 
SE18_SE_Lec 12_ Project Management 1
SE18_SE_Lec 12_ Project Management 1SE18_SE_Lec 12_ Project Management 1
SE18_SE_Lec 12_ Project Management 1
Amr E. Mohamed
 
Putting-MANAGEMENT-into-Your-Requirements-Management_Dec2005
Putting-MANAGEMENT-into-Your-Requirements-Management_Dec2005Putting-MANAGEMENT-into-Your-Requirements-Management_Dec2005
Putting-MANAGEMENT-into-Your-Requirements-Management_Dec2005pbaxter
 
Brownfields agile draft v11
Brownfields agile draft v11Brownfields agile draft v11
Brownfields agile draft v11
tony1234
 
From Principles to Strategies for Systems Engineering
From Principles to Strategies for Systems EngineeringFrom Principles to Strategies for Systems Engineering
From Principles to Strategies for Systems Engineering
Glen Alleman
 
Software Project Planning II
Software Project Planning IISoftware Project Planning II
Software Project Planning II
Gagan Deep
 
Control systems
Control systemsControl systems
Control systems
Glen Alleman
 
Integrated master plan methodology (v2)
Integrated master plan methodology (v2)Integrated master plan methodology (v2)
Integrated master plan methodology (v2)
Glen Alleman
 
Earned value, XP and government contracts
Earned value, XP and government contractsEarned value, XP and government contracts
Earned value, XP and government contracts
Glen Alleman
 

What's hot (20)

A Guide for Capital Project Mamnagers
A Guide for Capital Project MamnagersA Guide for Capital Project Mamnagers
A Guide for Capital Project Mamnagers
 
Software Project Planning V
Software Project Planning VSoftware Project Planning V
Software Project Planning V
 
How Should We Estimate Agile Software Development Projects and What Data Do W...
How Should We Estimate Agile Software Development Projects and What Data Do W...How Should We Estimate Agile Software Development Projects and What Data Do W...
How Should We Estimate Agile Software Development Projects and What Data Do W...
 
Guide to Software Estimation
Guide to Software EstimationGuide to Software Estimation
Guide to Software Estimation
 
Agile project management is systems management
Agile project management is systems managementAgile project management is systems management
Agile project management is systems management
 
Agile in an ANSI-748-C environment
Agile in an ANSI-748-C environmentAgile in an ANSI-748-C environment
Agile in an ANSI-748-C environment
 
Probabilistic Schedule and Cost Analysis
Probabilistic Schedule and Cost AnalysisProbabilistic Schedule and Cost Analysis
Probabilistic Schedule and Cost Analysis
 
Forecasting cost and schedule performance
Forecasting cost and schedule performanceForecasting cost and schedule performance
Forecasting cost and schedule performance
 
What Makes a Good Concept of Operations?
What Makes a Good Concept of Operations?What Makes a Good Concept of Operations?
What Makes a Good Concept of Operations?
 
Establishing schedule margin using monte carlo simulation
Establishing schedule margin using monte carlo simulation Establishing schedule margin using monte carlo simulation
Establishing schedule margin using monte carlo simulation
 
Cpm 200 C technical performance measures ipm2016
Cpm 200 C technical performance measures ipm2016Cpm 200 C technical performance measures ipm2016
Cpm 200 C technical performance measures ipm2016
 
Heliotropic Abundance
Heliotropic AbundanceHeliotropic Abundance
Heliotropic Abundance
 
SE18_SE_Lec 12_ Project Management 1
SE18_SE_Lec 12_ Project Management 1SE18_SE_Lec 12_ Project Management 1
SE18_SE_Lec 12_ Project Management 1
 
Putting-MANAGEMENT-into-Your-Requirements-Management_Dec2005
Putting-MANAGEMENT-into-Your-Requirements-Management_Dec2005Putting-MANAGEMENT-into-Your-Requirements-Management_Dec2005
Putting-MANAGEMENT-into-Your-Requirements-Management_Dec2005
 
Brownfields agile draft v11
Brownfields agile draft v11Brownfields agile draft v11
Brownfields agile draft v11
 
From Principles to Strategies for Systems Engineering
From Principles to Strategies for Systems EngineeringFrom Principles to Strategies for Systems Engineering
From Principles to Strategies for Systems Engineering
 
Software Project Planning II
Software Project Planning IISoftware Project Planning II
Software Project Planning II
 
Control systems
Control systemsControl systems
Control systems
 
Integrated master plan methodology (v2)
Integrated master plan methodology (v2)Integrated master plan methodology (v2)
Integrated master plan methodology (v2)
 
Earned value, XP and government contracts
Earned value, XP and government contractsEarned value, XP and government contracts
Earned value, XP and government contracts
 

Viewers also liked

Agile at scale resources
Agile at scale resourcesAgile at scale resources
Agile at scale resources
Glen Alleman
 
Capabilities based planning (v2)
Capabilities based planning (v2)Capabilities based planning (v2)
Capabilities based planning (v2)
Glen Alleman
 
Principles of program governance
Principles of program governancePrinciples of program governance
Principles of program governanceGlen Alleman
 
Paradigm of agile project management
Paradigm of agile project managementParadigm of agile project management
Paradigm of agile project management
Glen Alleman
 
Project maturity flow is the incremental delivery of business value
Project maturity flow is the incremental delivery of business valueProject maturity flow is the incremental delivery of business value
Project maturity flow is the incremental delivery of business value
Glen Alleman
 
Notes on balanced scorecard
Notes on balanced scorecardNotes on balanced scorecard
Notes on balanced scorecard
Glen Alleman
 
Managing in the presence of uncertainty
Managing in the presence of uncertaintyManaging in the presence of uncertainty
Managing in the presence of uncertainty
Glen Alleman
 
UIKit User Interface Catalog (iOS 7)
UIKit User Interface Catalog (iOS 7)UIKit User Interface Catalog (iOS 7)
UIKit User Interface Catalog (iOS 7)Evgeny Belyaev
 
Principles of program governance
Principles of program governancePrinciples of program governance
Principles of program governance
Glen Alleman
 
Risk management processes
Risk management processesRisk management processes
Risk management processes
Glen Alleman
 
The Social Shift Fund - Presentation
The Social Shift Fund - Presentation The Social Shift Fund - Presentation
The Social Shift Fund - Presentation
Marine Aubin
 
Fix you some bad estimation habits
Fix you some bad estimation habitsFix you some bad estimation habits
Fix you some bad estimation habits
Ted M. Young
 
Pedir lo mismo de diferentes maneras
Pedir lo mismo de diferentes manerasPedir lo mismo de diferentes maneras
Pedir lo mismo de diferentes maneras
Antonio Salvadores
 
Immutable Principles Of Project Management (V7 Final Cmu)
Immutable Principles Of Project Management (V7 Final Cmu)Immutable Principles Of Project Management (V7 Final Cmu)
Immutable Principles Of Project Management (V7 Final Cmu)Glen Alleman
 
Physical Percent Complete - june 2010 (6)
Physical Percent Complete - june 2010 (6)Physical Percent Complete - june 2010 (6)
Physical Percent Complete - june 2010 (6)Glen Alleman
 
Establishing the performance measurement baseline (pmi fort worth)(v4)
Establishing the performance measurement baseline (pmi fort worth)(v4)Establishing the performance measurement baseline (pmi fort worth)(v4)
Establishing the performance measurement baseline (pmi fort worth)(v4)Glen Alleman
 
Cure for cost and schedule growth
Cure for cost and schedule growthCure for cost and schedule growth
Cure for cost and schedule growth
Glen Alleman
 
Customer Intelligence & Social Media
Customer Intelligence & Social MediaCustomer Intelligence & Social Media
Customer Intelligence & Social Media
Amplified Analytics
 
Big data meets evm (submitted).pptx
Big data meets evm (submitted).pptxBig data meets evm (submitted).pptx
Big data meets evm (submitted).pptxGlen Alleman
 

Viewers also liked (20)

Agile at scale resources
Agile at scale resourcesAgile at scale resources
Agile at scale resources
 
Capabilities based planning (v2)
Capabilities based planning (v2)Capabilities based planning (v2)
Capabilities based planning (v2)
 
Principles of program governance
Principles of program governancePrinciples of program governance
Principles of program governance
 
Paradigm of agile project management
Paradigm of agile project managementParadigm of agile project management
Paradigm of agile project management
 
Project maturity flow is the incremental delivery of business value
Project maturity flow is the incremental delivery of business valueProject maturity flow is the incremental delivery of business value
Project maturity flow is the incremental delivery of business value
 
Notes on balanced scorecard
Notes on balanced scorecardNotes on balanced scorecard
Notes on balanced scorecard
 
Managing in the presence of uncertainty
Managing in the presence of uncertaintyManaging in the presence of uncertainty
Managing in the presence of uncertainty
 
UIKit User Interface Catalog (iOS 7)
UIKit User Interface Catalog (iOS 7)UIKit User Interface Catalog (iOS 7)
UIKit User Interface Catalog (iOS 7)
 
Principles of program governance
Principles of program governancePrinciples of program governance
Principles of program governance
 
Risk management processes
Risk management processesRisk management processes
Risk management processes
 
The Social Shift Fund - Presentation
The Social Shift Fund - Presentation The Social Shift Fund - Presentation
The Social Shift Fund - Presentation
 
Fix you some bad estimation habits
Fix you some bad estimation habitsFix you some bad estimation habits
Fix you some bad estimation habits
 
Pedir lo mismo de diferentes maneras
Pedir lo mismo de diferentes manerasPedir lo mismo de diferentes maneras
Pedir lo mismo de diferentes maneras
 
Immutable Principles Of Project Management (V7 Final Cmu)
Immutable Principles Of Project Management (V7 Final Cmu)Immutable Principles Of Project Management (V7 Final Cmu)
Immutable Principles Of Project Management (V7 Final Cmu)
 
Universidades
Universidades Universidades
Universidades
 
Physical Percent Complete - june 2010 (6)
Physical Percent Complete - june 2010 (6)Physical Percent Complete - june 2010 (6)
Physical Percent Complete - june 2010 (6)
 
Establishing the performance measurement baseline (pmi fort worth)(v4)
Establishing the performance measurement baseline (pmi fort worth)(v4)Establishing the performance measurement baseline (pmi fort worth)(v4)
Establishing the performance measurement baseline (pmi fort worth)(v4)
 
Cure for cost and schedule growth
Cure for cost and schedule growthCure for cost and schedule growth
Cure for cost and schedule growth
 
Customer Intelligence & Social Media
Customer Intelligence & Social MediaCustomer Intelligence & Social Media
Customer Intelligence & Social Media
 
Big data meets evm (submitted).pptx
Big data meets evm (submitted).pptxBig data meets evm (submitted).pptx
Big data meets evm (submitted).pptx
 

Similar to Inversion of Control

CHAPTER FOUR buugii 2023.docx
CHAPTER FOUR buugii 2023.docxCHAPTER FOUR buugii 2023.docx
CHAPTER FOUR buugii 2023.docx
RUKIAHASSAN4
 
Designing PrinciplesOf Software
Designing PrinciplesOf Software Designing PrinciplesOf Software
Designing PrinciplesOf Software
Ankita Agrawal
 
Giddings
GiddingsGiddings
Giddingsanesah
 
Software architecture
Software architectureSoftware architecture
Software architecture
Sweta Kumari Barnwal
 
Software engg. pressman_ch-10
Software engg. pressman_ch-10Software engg. pressman_ch-10
Software engg. pressman_ch-10Dhairya Joshi
 
Software Engineering Important Short Question for Exams
Software Engineering Important Short Question for ExamsSoftware Engineering Important Short Question for Exams
Software Engineering Important Short Question for Exams
MuhammadTalha436
 
Software design i (2) (1)
Software design   i (2) (1)Software design   i (2) (1)
Software design i (2) (1)
Shagufta shaheen
 
Software configuration management
Software configuration managementSoftware configuration management
Software configuration management
fizamustanser
 
INTEGRATIVE PROGRAMMING ch1.pptx
INTEGRATIVE PROGRAMMING ch1.pptxINTEGRATIVE PROGRAMMING ch1.pptx
INTEGRATIVE PROGRAMMING ch1.pptx
StephenStanleyAndres1
 
Modules and modularization criteria
Modules and modularization criteriaModules and modularization criteria
Modules and modularization criteria
Umaselvi_R
 
software design: design fundamentals.pptx
software design: design fundamentals.pptxsoftware design: design fundamentals.pptx
software design: design fundamentals.pptx
Dr.Shweta
 
Ch10
Ch10Ch10
term paper for cbd models
term paper for cbd modelsterm paper for cbd models
term paper for cbd modelsSukhdeep Singh
 
An Algorithm Based Simulation Modeling For Control of Production Systems
An Algorithm Based Simulation Modeling For Control of Production SystemsAn Algorithm Based Simulation Modeling For Control of Production Systems
An Algorithm Based Simulation Modeling For Control of Production Systems
IJMER
 
Application Of UML In Real-Time Embedded Systems
Application Of UML In Real-Time Embedded SystemsApplication Of UML In Real-Time Embedded Systems
Application Of UML In Real-Time Embedded Systems
ijseajournal
 
A relational model of data for large shared data banks
A relational model of data for large shared data banksA relational model of data for large shared data banks
A relational model of data for large shared data banks
Sammy Alvarez
 
Software Architecture Standard IEEE 1471
Software Architecture Standard IEEE 1471Software Architecture Standard IEEE 1471
Software Architecture Standard IEEE 1471
vconovalov
 

Similar to Inversion of Control (20)

CHAPTER FOUR buugii 2023.docx
CHAPTER FOUR buugii 2023.docxCHAPTER FOUR buugii 2023.docx
CHAPTER FOUR buugii 2023.docx
 
Designing PrinciplesOf Software
Designing PrinciplesOf Software Designing PrinciplesOf Software
Designing PrinciplesOf Software
 
Giddings
GiddingsGiddings
Giddings
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Software engg. pressman_ch-10
Software engg. pressman_ch-10Software engg. pressman_ch-10
Software engg. pressman_ch-10
 
Software Engineering Important Short Question for Exams
Software Engineering Important Short Question for ExamsSoftware Engineering Important Short Question for Exams
Software Engineering Important Short Question for Exams
 
Software design i (2) (1)
Software design   i (2) (1)Software design   i (2) (1)
Software design i (2) (1)
 
Software configuration management
Software configuration managementSoftware configuration management
Software configuration management
 
INTEGRATIVE PROGRAMMING ch1.pptx
INTEGRATIVE PROGRAMMING ch1.pptxINTEGRATIVE PROGRAMMING ch1.pptx
INTEGRATIVE PROGRAMMING ch1.pptx
 
Modules and modularization criteria
Modules and modularization criteriaModules and modularization criteria
Modules and modularization criteria
 
software design: design fundamentals.pptx
software design: design fundamentals.pptxsoftware design: design fundamentals.pptx
software design: design fundamentals.pptx
 
Ch10
Ch10Ch10
Ch10
 
term paper for cbd models
term paper for cbd modelsterm paper for cbd models
term paper for cbd models
 
An Algorithm Based Simulation Modeling For Control of Production Systems
An Algorithm Based Simulation Modeling For Control of Production SystemsAn Algorithm Based Simulation Modeling For Control of Production Systems
An Algorithm Based Simulation Modeling For Control of Production Systems
 
Application Of UML In Real-Time Embedded Systems
Application Of UML In Real-Time Embedded SystemsApplication Of UML In Real-Time Embedded Systems
Application Of UML In Real-Time Embedded Systems
 
A relational model of data for large shared data banks
A relational model of data for large shared data banksA relational model of data for large shared data banks
A relational model of data for large shared data banks
 
Cloud Storage and Security
Cloud Storage and SecurityCloud Storage and Security
Cloud Storage and Security
 
06 fse design
06 fse design06 fse design
06 fse design
 
Software Architecture Standard IEEE 1471
Software Architecture Standard IEEE 1471Software Architecture Standard IEEE 1471
Software Architecture Standard IEEE 1471
 
10.1.1.107.2618
10.1.1.107.261810.1.1.107.2618
10.1.1.107.2618
 

More from Glen Alleman

Managing risk with deliverables planning
Managing risk with deliverables planningManaging risk with deliverables planning
Managing risk with deliverables planning
Glen Alleman
 
A Gentle Introduction to the IMP/IMS
A Gentle Introduction to the IMP/IMSA Gentle Introduction to the IMP/IMS
A Gentle Introduction to the IMP/IMS
Glen Alleman
 
Increasing the Probability of Project Success
Increasing the Probability of Project SuccessIncreasing the Probability of Project Success
Increasing the Probability of Project Success
Glen Alleman
 
Process Flow and Narrative for Agile+PPM
Process Flow and Narrative for Agile+PPMProcess Flow and Narrative for Agile+PPM
Process Flow and Narrative for Agile+PPM
Glen Alleman
 
Practices of risk management
Practices of risk managementPractices of risk management
Practices of risk management
Glen Alleman
 
Principles of Risk Management
Principles of Risk ManagementPrinciples of Risk Management
Principles of Risk Management
Glen Alleman
 
Deliverables Based Planning, PMBOK® and 5 Immutable Principles of Project Suc...
Deliverables Based Planning, PMBOK® and 5 Immutable Principles of Project Suc...Deliverables Based Planning, PMBOK® and 5 Immutable Principles of Project Suc...
Deliverables Based Planning, PMBOK® and 5 Immutable Principles of Project Suc...
Glen Alleman
 
NAVAIR Integrated Master Schedule Guide guide
NAVAIR Integrated Master Schedule Guide guideNAVAIR Integrated Master Schedule Guide guide
NAVAIR Integrated Master Schedule Guide guide
Glen Alleman
 
Building a Credible Performance Measurement Baseline
Building a Credible Performance Measurement BaselineBuilding a Credible Performance Measurement Baseline
Building a Credible Performance Measurement Baseline
Glen Alleman
 
IMP / IMS Step by Step
IMP / IMS Step by StepIMP / IMS Step by Step
IMP / IMS Step by Step
Glen Alleman
 
Making the impossible possible
Making the impossible possibleMaking the impossible possible
Making the impossible possible
Glen Alleman
 
Capabilities based planning
Capabilities based planningCapabilities based planning
Capabilities based planning
Glen Alleman
 
Process Flow and Narrative for Agile
Process Flow and Narrative for AgileProcess Flow and Narrative for Agile
Process Flow and Narrative for Agile
Glen Alleman
 
Building the Performance Measurement Baseline
Building the Performance Measurement BaselineBuilding the Performance Measurement Baseline
Building the Performance Measurement Baseline
Glen Alleman
 
Program Management Office Lean Software Development and Six Sigma
Program Management Office Lean Software Development and Six SigmaProgram Management Office Lean Software Development and Six Sigma
Program Management Office Lean Software Development and Six Sigma
Glen Alleman
 
Policy and Procedure Rollout
Policy and Procedure RolloutPolicy and Procedure Rollout
Policy and Procedure Rollout
Glen Alleman
 
Integrated Master Plan Development
Integrated Master Plan DevelopmentIntegrated Master Plan Development
Integrated Master Plan Development
Glen Alleman
 
Project Management Theory
Project Management TheoryProject Management Theory
Project Management Theory
Glen Alleman
 
Increasing the Probability of Project Success with Five Principles and Practices
Increasing the Probability of Project Success with Five Principles and PracticesIncreasing the Probability of Project Success with Five Principles and Practices
Increasing the Probability of Project Success with Five Principles and Practices
Glen Alleman
 
Seven Habits of a Highly Effective agile project manager
Seven Habits of a Highly Effective agile project managerSeven Habits of a Highly Effective agile project manager
Seven Habits of a Highly Effective agile project manager
Glen Alleman
 

More from Glen Alleman (20)

Managing risk with deliverables planning
Managing risk with deliverables planningManaging risk with deliverables planning
Managing risk with deliverables planning
 
A Gentle Introduction to the IMP/IMS
A Gentle Introduction to the IMP/IMSA Gentle Introduction to the IMP/IMS
A Gentle Introduction to the IMP/IMS
 
Increasing the Probability of Project Success
Increasing the Probability of Project SuccessIncreasing the Probability of Project Success
Increasing the Probability of Project Success
 
Process Flow and Narrative for Agile+PPM
Process Flow and Narrative for Agile+PPMProcess Flow and Narrative for Agile+PPM
Process Flow and Narrative for Agile+PPM
 
Practices of risk management
Practices of risk managementPractices of risk management
Practices of risk management
 
Principles of Risk Management
Principles of Risk ManagementPrinciples of Risk Management
Principles of Risk Management
 
Deliverables Based Planning, PMBOK® and 5 Immutable Principles of Project Suc...
Deliverables Based Planning, PMBOK® and 5 Immutable Principles of Project Suc...Deliverables Based Planning, PMBOK® and 5 Immutable Principles of Project Suc...
Deliverables Based Planning, PMBOK® and 5 Immutable Principles of Project Suc...
 
NAVAIR Integrated Master Schedule Guide guide
NAVAIR Integrated Master Schedule Guide guideNAVAIR Integrated Master Schedule Guide guide
NAVAIR Integrated Master Schedule Guide guide
 
Building a Credible Performance Measurement Baseline
Building a Credible Performance Measurement BaselineBuilding a Credible Performance Measurement Baseline
Building a Credible Performance Measurement Baseline
 
IMP / IMS Step by Step
IMP / IMS Step by StepIMP / IMS Step by Step
IMP / IMS Step by Step
 
Making the impossible possible
Making the impossible possibleMaking the impossible possible
Making the impossible possible
 
Capabilities based planning
Capabilities based planningCapabilities based planning
Capabilities based planning
 
Process Flow and Narrative for Agile
Process Flow and Narrative for AgileProcess Flow and Narrative for Agile
Process Flow and Narrative for Agile
 
Building the Performance Measurement Baseline
Building the Performance Measurement BaselineBuilding the Performance Measurement Baseline
Building the Performance Measurement Baseline
 
Program Management Office Lean Software Development and Six Sigma
Program Management Office Lean Software Development and Six SigmaProgram Management Office Lean Software Development and Six Sigma
Program Management Office Lean Software Development and Six Sigma
 
Policy and Procedure Rollout
Policy and Procedure RolloutPolicy and Procedure Rollout
Policy and Procedure Rollout
 
Integrated Master Plan Development
Integrated Master Plan DevelopmentIntegrated Master Plan Development
Integrated Master Plan Development
 
Project Management Theory
Project Management TheoryProject Management Theory
Project Management Theory
 
Increasing the Probability of Project Success with Five Principles and Practices
Increasing the Probability of Project Success with Five Principles and PracticesIncreasing the Probability of Project Success with Five Principles and Practices
Increasing the Probability of Project Success with Five Principles and Practices
 
Seven Habits of a Highly Effective agile project manager
Seven Habits of a Highly Effective agile project managerSeven Habits of a Highly Effective agile project manager
Seven Habits of a Highly Effective agile project manager
 

Recently uploaded

AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 

Recently uploaded (20)

AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 

Inversion of Control

  • 1. Copyright © 2001 Glen B. Alleman, Niwot Colorado INVERSION OF CONTROL The Impedance Mismatch in Integrated Engineering Design Systems This technical note describes an issue in the integra- tion of commercial off the shelf (COTS) components. This issue is a member of the Impedance Mismatch problems found [7] when commercial off the shelf components are assembled into systems. This mismatch occurs when event, control sequence, or data semantics of two or more participating appli- cation domains are mismatched. During the system integration process the impedance mismatch must be addressed through some means, either through an integration layer which hides the mismatch or through an integrating service, such as CORBA, which facilitates the impedance adaptation between the applications. Separation of Concerns The primary issue in defining an integration architec- ture is the ability to separate the concerns of each application component, while simultaneously creating an integrated system. This separation has several di- mensions. Without this ability to separate the con- cerns, the resulting system will not only be tightly coupled and resist change and enhancement, but fail- ures in one portion of the system will be propagated to other portions of the system, across these tightly coupled boundaries. A Simple Manufacturing Example A simple example of the inversion of control prob- lem can be found when CAD, ERP, PDM and product configuration systems are integrated. Figure 2 describes a very simple set of integration components commonly found in the manufacturing domain. Manufacturing – ERP systems provide the data and work flow management for manufacturing processes. Manufacturing Bills of Material are maintained by the ERP system. These BOMs describe the as manufactured entities. In most cases these BOMs must have part numbers in order to be identified by manufacturing and purchasing Engineering – PDM systems provide the data and process management for as designed elements of the product line. Part numbers need not be assigned to work in progress engineering entities. Before an en- gineered product is released for manufacturing, some type of Bill of Material is needed. This BOM is usually generated through a configuration process. Design – CAD systems provide tools needed to assemble and analyze products in response to cus- tomer needs. These tools provide geometric as well as attribute based design. Parametric drawing en- gines are used to render different products from similar underlying geometric entities. The paramet- ric assembly of products generate Bills of Material as well as other derived information from a model rather than from a list of elements in a static data- base. Product Structure – has been the traditional roles of Product Data Management (PDM) systems. With the introduction of engineer to order business mod- els, Configurators now provide the intelligence to construct products from standard as well as engi- neered components. Change control is the primary role of the PDM system. Assembling these four systems into an integrated solution exposes the inversion of control problem. Each COTS product assumes it initially operates as a stand alone entity with control, data, and semantics residing within the prod- uct. This is a natural result since each product was purpose built to solve a specific set of problems, targeted to specific industries. The ownership of data, process, and semantics is a natural outcome of the product marketing approach of each vendor. Technical Note 2001.13
  • 2. Copyright © 2001 Glen B. Alleman, Niwot Colorado Four Dimensions of Integrated Systems To understand how the impedance mismatch arises in a traditional system integration, we must identify the core cause of this mismatch and the dimensions of the solution. The problem introduced by component–based systems is that components embed assumptions about the architectural and operational context in which they operate. Move Apart Separation Motivation Data Trans- port The movement of data is seperated from the actual data itself. This allows multi- ple mechanisms for connecting applications do- mains to be used without regard to the format or form of the data. Publish Sub- scribe Applications that publish events know nothing of ap- plications subscribing to events. Internal Event External Event Private events change the operational flow of an appli- cation without affecting ex- ternal processes. Public events synchronize large– grained processes without impacting internal fine– grained processes. Internal Data External Data Data transformations take place across application boundaries only when needed. Connec- tion Delivery The delivery of messages and events is seperated from the management of the connection over which the delivery process takes place. Figure 1 – Separating Concerns in Integrated Systems These assumptions often conflict with the architecture of the integrated meta–system and with the assump- tions of the components of other parts of the sys- tem. [1] 1 “Discovering a System Modernization Decision Framework: A Case Study in Migrating to Distributed Object Technol- ogy,” Evan Wallace, Paul Clements, and Kurt Wallnau. NIST Interagency Report, Software Engineering Institute. The selec- tion of a distributed object technology may appear as a sim- ple process. It’s what everyone is doing. This is not the case when the business domain experience is grounded in a cen- tralized “mainframe” culture. Many of the process, state, and data assumptions of the mainframe world are no longer valid There are four dimensions to this impedance mismatch: [2] Control integration mismatch – describes how com- ponents make requests from other components. The mismatch occurs when the thread of control is maintained in each application domain, with no ex- ternal means of interrupting the thread of control or causing the thread of control to be redirected by outside means. Examples of this control mis- match in the Configurator include: The AutoCAD domain controlling the creation and updating of design objects in the configura- tor database. Once the design object has been created or updated, other applications must be signaled that this change has occurred. This sig- naling needs to be done through some means shared by all the applications participating in the integration. The PDM domain controlling the product struc- ture and revision control of this structure. Engi- neer to order product make use of product structure information. This information defines how individual components can be assembled (or valid in different ways) in the distributed object world. One simple example of this impact is the design and implementation of the inter–process communication infrastructure. Timing, communi- cation reliability, remote object method invocation, fault detection and recovery are all system architecture issues that must be ad- dressed in a different manner than the previous mainframe systems. It could be argued that given the fault tolerant nature of the engi- neering and manufacturing systems, the underlying problems are the same. However, it has been shown in the literature as well as field experience that there are a unique set of issues found in the distributed object architecture that are not found in the centralized processor architecture. 2 The fundamental problem in the integration of heterogeneous sys- tems is how to normalize the semantics of the data and process flow. The following is just a sample of the research and practices information available on the subject. “What Do Groups Need? A Proposed Set of Generic Groupware Requirements,” Munir Mandviwalla and Lorne Olfman, ACM Transactions of Computer–Human Interaction, 1(3), September 1994, pp. 245–268. “Federating Heterogeneous Workflow Systems,” Andreas Geppart, et al, Technical Report 98.05, Department of Computer Science, University of Zurich. “Distributed Data Management in Workflow Environments,” G. Alonso, B. Reinwald, and C. Mohan, IBM Almaden Research Center Report. www.almaden.ibm.com. “An Overview of Workflow Management: From Process Modeling to Workflow Automation Infrastructure,” Dimmitrios George Ka- opoulos, Mark Hornick, and Amit Sheth, Distributed and Parallel Databases Volume 3, 1995, pp. 119–153. “Some Practical Advice for Dealing with Semantic Heterogeneity in Federated Database Systems,” V. Ventrone, The MITRE Corporation, Bedford, MA and S. Heiler, GTE Laboratories, Waltham MA. “Workflow based Applications,” F. Leymann and D. Roller, IBM Systems Journal, 36(1), 1997, pp. 102
  • 3. Copyright © 2001 Glen B. Alleman, Niwot Colorado into units or other high level deliverables. Changes in the product structure must be communicated to the configuration process, but these changes must not undo configura- tions that have taken place in the past. Data integration mismatch – describes how components make data available to other components. The mismatch occurs when the semantics of the data elements are not normal- ized. Process integration mismatch – describes the end–user processes supported by a collection of components. The mismatch occurs when the workflow processes within two domains do not share the same semantics. This is actu- ally an interoperability problem between the two process domains. Each application domain has been created assuming it is the center of some process. Although each application is provided with an API, the process orientation of this API assumes the thread of control is maintained by the application. The Configurator creates an integrated thread of control environment in which each application must be capable of relin- quishing control while it is cooperating with other applications. This transformation from control–centric to cooperation–centric takes place through the shared event signaling and control flow sys- tem. Presentation integration mismatch – describes how end–users interact with the system through the User Interface. This mismatch oc- curs when the user interface elements of the system contain differing semantics but similar format and syntax. The contents of tables, fields, command buttons, and other User In- terface elements are not normalized with the underlying database schema. There are several primary user interfaces in Configurator. AutoCAD, the PDM system, the rule definition interface, the BOM tex- tual interface. Each of these User Interfaces presents and application domain–centric view of data and process. Engineering Design Manufacturing Product Structure Configurator Figure 2 – Integrating Diverse System Components In this heterogeneous COTS environment: Each application domain makes use of a specific implementation paradigm. The interactive process of configuring a product makes use of local and global data. Sharing this data and synchronizing the design and editing process creates opportunities for imped- ance mismatches. Each application assumes this pri- vate paradigm can be syndicated to other applica- tion domains. This assumption is rarely true, since the semantics of the data and control processes are unique for each application. [3] Each application domain assumes it is independent from other application domains. This independence includes the flow of control within the domain as well as the announcement of events and changes in state across the domain boundaries. This domain independence creates an inversion of control or the lack of explicit control across these application boundaries. [4] This inversion of control is a funda- mental architectural flaw found in tightly coupled integration architectures, where multiple information producers and consumers are present. Each application domain makes use of unique file formats and communication protocols. Engineering systems, design systems, manufacturing systems, sales & marketing systems and the integration components which connect them together, all pro- 3 “Integrating Islands of Automation,” Michael Stonebraker, eaiJournal, September / October 1999. www.eaijournal.com. 4 “Object–Oriented Application Frameworks,” Mohamed E. Fayad and Douglas C. Schmidt, Communications of the ACM, 40(10), October 1997, pp. 32–38.
  • 4. Copyright © 2001 Glen B. Alleman, Niwot Colorado vide different file formats and protocols. In some cases, the format of the data is also unique to the operating system or the under- lying database management system. [6] The event signaling, thread control, exception handling, and other low level software behav- iors are difficult to control – even if the sys- tems are intentionally designed to be compati- ble. [5] Each application domain assumes a unique mechanism for controlling the thread of execution. The synchronization of these execution threads across application boundaries is one of most the difficult problems in the integration of heterogeneous systems. Exceptions are reported within each applica- tion domain using the semantics of that appli- cation. Simple error codes and user response processes are unique to each domain. The uni- fication of the exception semantics and the handling of the exceptions is a difficult and sometimes intractable task. [6] In this heterogeneous integration environment, the influence of each domain – as well as many other intangible influences – creates an impedance mismatch between the COTS components. [7] The challenge for the system architect as well as the system integrator is to define a mechanism that integrates the disparate components while maintaining their unique function- ality. [8] 5 “Michael Stonebraker on the Importance of Data Integration,” Lee Garber, IEEE IT Pro, May / June, 1999 6 “Framework Integration: Problems, Causes, Solutions,” Mi- chael Mattsson, Jan Bosch, and Mohamed E. Fayad, Com- munications of the ACM, 42(10), October 1999, pp. 81–87. 7 The term impedance mismatch is widely used in the database domain to describe the mismatch between SQL database technologies and Object Oriented technologies. This mis- match comes about through the query and updating proc- esses that are distinctly different in their semantics. In addi- tion, the concept of architectural mismatch is now well un- derstood and cause of many of the problems found in the industry. To understand this issue and how it affects the de- sign of UNA some background materials are available and should be read by anyone intending the make changes to the UNA. “Detecting Architectural Mismatches During Sys- tem Composition,” Cristina Gacek, Center for Software En- gineering, Computer Science Department, University of Southern California, USC/CSE–97–TR–506, July 8, 1997, “Composing Heterogeneous Software Architectures,” Ahmed Abd–el–Shaft Abd–Allah, PhD Thesis, University of Southern California, August 1996 and “Attribute–Based Architectural Styles,” mark Klein and Rick Kazman, Software Engineering Institute, CMU/SEI–99–TR–022, October 1999. 8 “Architectural Mismatch, or Why It’s Hard to Build Systems Out Of Existing Parts,” D. Garlan, R. Allen, and J. Ocker- In addition to the impedance mismatch between the COTS components, these components are also undergoing con- tinuous change. [9] These changes create a moving target for the seamless integration of heterogeneous systems. What Does This Mean in the End? Each component in the integrated system presents a unique challenge to the system architect as well as the develop- ment staff. Starting with enterprise application integration platform, a loosely coupled architecture can be used to create a federated system of components, rather than a tightly integrated collection of components. This federation strategy has distinct advantages over the traditional tight integration or monolithic database architec- tures found in competing products: Individual components need not know about other components in the federation. A shared object re- pository can be used to connect the business do- mains. Event and process synchronization is pro- vided through a publish and subscribe mechanism. Content created in one domain remains in that domain until it is needed in another domain. An integration interface component provides a mechanism to expose the functionality of an appli- cation domain without creating a physical connec- tion between these domains. Business Drivers for Federated Systems In order to address the integration (federation) business drivers for engineering and manufacturing systems, an ar- chitecture is needed that provides an economically viable product. These drivers include: COTS based user applications that provide the best of breed capabilities without constraining other ap- plications. Data format transformation demands for internal formats that must be exchanged between the best of breed applications. Real–time aspects of design and configurations as raw input to the system. All the non–functional requirements of a 24 × 7 system. bloom, Proceedings of ICSE ‘95, IEEE Computer Society Press, April 23–30 1995, pp. 179–185. 9 Based Software Development,” Will Tracz, Crosstalk, January 2000, pp. 4–8. www.stsc.hill.af.mil/CrossTalk/index.asp.
  • 5. Copyright © 2001 Glen B. Alleman, Niwot Colorado Operational Drivers for Federated Sys- tems The reliance on distributed object technologies for the integration of COTS systems creates operational ex- pectations not normally found in traditional engineer- ing and manufacturing systems. These include: Performance management: The collection of performance metrics from applications across large–grained boundaries. Application response management for each application domain. The ability to start and stop application server objects depending on the processing load. Fault Management: Detection – of the fault, its source, and its cause. Tracking – of faults to identify unreliable components. Reporting – faults to support administra- tion of the system. Configuration management: Dynamic configuration of server and client objects to meet changing business applica- tion needs. Rearrange the server objects to meet changes in load. System management software: Software distribution and installation proc- esses. Enterprise operations console to manage all object and processes. Application management software: Multi–level application lifecycle manage- ment – provides the means to manage fine–grained objects, server processes, the dependencies between these processes, and the introduction on non–intrusive 3rd party applications. Performance monitoring across interfaces and within the application domains. Event management for coordinated execu- tion of distributed processes. Object Technology Integration Platforms An object can be thought of as an entity that re- sponds to a set of messages. A given message causes an object to execute a given set of instructions. In reality, an object is a piece of code that owns things called attributes and provides services through methods. Objects have three properties that make them very useful for inte- grating heterogeneous systems – which is the principal problem in the publishing system application domain. Encapsulation – which allows an object to manage its own resources and limit the visibility into its behavior. An object publishes its interface that de- fines how other objects or applications can interact with it. However, the actual processing that takes place inside the object is not visible to the outside world. The object’s implementation is encapsulated – hidden from public view. Polymorphism – which is a fancy way of saying that the same method can do different things, de- pending on the class that implements it. Objects in different classes can receive the same message from their clients, yet react in different ways. Inheritance – is the mechanism that allows pro- grams to create child classes – known as subclasses or derived classes – from existing parent classes. Child classes inherit their parent’s methods and data structures. Many benefits are cited for object–oriented development, often to a degree that is unrealistic. [10] With the proper investment in architecture and design there are tangible benefits to the object–oriented programming model, the components that results from this model and the frame- work in which the components exist. Conclusion Without a clear strategy to deal with this integration im- pedance mismatch upfront, the gaps created will be revealed later in the integration process. These gaps are expensive to close, difficult to locate in a complex system, and reduce the reliability, performance, and robustness of the overall system. 10 “Pitfalls of Object–Oriented Development,” Bruce F. Webster, M&T Books, 1995. Although it is somewhat dated, this text is one of those must read works for every developer, manager, and prod- uct specialist. It describes the myths of object–oriented development, the consequences of these myths, and the prevention of the prob- lems resulting from taking the myths at face value.