SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
A Look at Current Component
  Models from the Black-box
          Perspective

On the need for well-specified black-box components

                   Premek Brada
       University of West Bohemia, Pilsen, Czech Republic

         Euromicro SCBSE, August 2009. Patras, Greece
Agenda
•    Defining component
•    Defining and defending black box
•    Case studies
•    Lessons learned




Euromicro 28.8.2009 Patras   P.Brada: Black-box perspective   2
What is component, anyway
• Levels of understanding
• Szyperski’s tiers: “business” and source level
  (buy instead of make)  design fragment
  reuse (~ADLs)  user-driven composition
  (deployment)  dynamic integration (~SOA)
• Bachmann et al: “architectural component” is
  architectural abstraction with standardized
  properties and composition possibilities
      – not an functionality implementing blob
        with ad-hoc integration means
Euromicro 28.8.2009 Patras   P.Brada: Black-box perspective   3
What is component, anyway




                                                              Szyperski’s book 2nd edition,
                                                                         preface

Euromicro 28.8.2009 Patras   P.Brada: Black-box perspective                                   4
The inflation of definitions
• Szyperski 1997 (2002): three own defs
• About 17 other defs around (1987-2007)




Euromicro 28.8.2009 Patras   P.Brada: Black-box perspective   5
What is component, anyway
• We talk about deployable architectural
  components here          Together prevent property leaks
• 7+ defs, shared view:   and implementation dependencies

      – black-box (opaque) software element
      – with well-specified surface (aka interface)
             • completeness, includes dependencies; client readable
      – 3rd party composable and deployable
      – model conformant              Sometimes omitted

             • type, interaction and composition rules
Euromicro 28.8.2009 Patras    P.Brada: Black-box perspective          6
What is black box, then?
                                                              David Parnas:
                                                              On the Criteria
                                                                … (1972)




“Blackbox reuse refers to the concept of                        Szyperski
                                                                 (2000)
reusing implementations without relying
on anything but their interfaces and
specifications. (…)
”In contrast, whitebox reuse refers to using a software
fragment, through its interfaces, while relying on the
understanding gained from studying the implementation.
Euromicro 28.8.2009 Patras   P.Brada: Black-box perspective                 7
Why black-box matters
• Software Engineering core concept:
   modules ->
   interfaces ->
   components: information hiding enforced
      on both sides of the surface (provide, require)
• Goals and consequences
      –    prevent property leaks               Why good specification
                                                  [of the black box]
      –    manage dependencies, composition             matters
      –    localize change effects
      –    make software comprehensible, analyzable
Euromicro 28.8.2009 Patras   P.Brada: Black-box perspective        8
When it does not…
… other essential properties not achievable
• Compositionality
      – cannot be deployed really anywhere, due to the
        internal (non-specified) dependencies
      – compound properties not deducable from
        composition of internal (non-specified) properties
• Model conformance
      – implementation can bypass interaction standards

Euromicro 28.8.2009 Patras       P.Brada: Black-box perspective   9
Aren’t we talking about the obvious?


• Counterexamples
      – JavaBeans – allow source-level composition
             • white-box reuse
      – OSGi, EJB – not well specified black boxes
             • discussion follows




Euromicro 28.8.2009 Patras    P.Brada: Black-box perspective   10
How do we assess opacity
                                                               Does this component
1. Completeness of specification                              model support black-box
                                                                    reuse well?
      – Explicit required role
2. Specification-implementation consistency
3. Enforcement of black box
      – or “of information hiding”

4. Ease of feature reconstruction
5. Richness of contract types

Euromicro 28.8.2009 Patras   P.Brada: Black-box perspective                       11
Case study 1: OSGi
• Explicit required role
• In-completeness of specification
      – core: don’t declare services
      – std services: almost complete, not universal
• Weak specification-implementation consistency
      – core: package resolving only
• Moderate enforcement of black box
      – bind to declared packages and registered services only
      – class leaks from packages deprecated but easy
Euromicro 28.8.2009 Patras       P.Brada: Black-box perspective   12
Case study 2: EJB
• Explicit required role
• Moderate completeness of specification
      – events for MDB, attributes for BMP
      – issue with annotation style declarations in EJB 3
• Mixed specification-implementation
  consistency
      – extremely poor for EJB 2.1
      – good for annotation style EJB 3
• Enforcement of black box by framework
Euromicro 28.8.2009 Patras       P.Brada: Black-box perspective   13
Why the transgressions?
• Component model design: abstraction level,
  specification means
      – Bachmann: “API can only be silent about
        properties about which it can speak, and
        programming languages are only equipped to
        speak about a narrow range of properties.”
• Implementation compromises / constraints
      – OSGi expert: Export-Service header deprecated
        because the framework does not act on it

Euromicro 28.8.2009 Patras   P.Brada: Black-box perspective   14
Conclusions
• Components are not as black box as we think
• How far on the scale can we go
  (before falling off)?



      call for sufficient abstraction level, completeness
      call for adequate [run-time] enforcement
     Detailed analysis of state of art/practice needed.

Euromicro 28.8.2009 Patras    P.Brada: Black-box perspective   15

Mais conteúdo relacionado

Semelhante a A Look at Current Component Models from the Black-box Perspective

Dissertation defense
Dissertation defenseDissertation defense
Dissertation defensemarek_pomocka
 
QPACE - QCD Parallel Computing on the Cell Broadband Engine™ (Cell/B.E.)
QPACE - QCD Parallel Computing on the Cell Broadband Engine™ (Cell/B.E.)QPACE - QCD Parallel Computing on the Cell Broadband Engine™ (Cell/B.E.)
QPACE - QCD Parallel Computing on the Cell Broadband Engine™ (Cell/B.E.)Heiko Joerg Schick
 
PyCoRAM: Yet Another Implementation of CoRAM Memory Architecture for Modern F...
PyCoRAM: Yet Another Implementation of CoRAM Memory Architecture for Modern F...PyCoRAM: Yet Another Implementation of CoRAM Memory Architecture for Modern F...
PyCoRAM: Yet Another Implementation of CoRAM Memory Architecture for Modern F...Shinya Takamaeda-Y
 
Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...
Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...
Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...David Beazley (Dabeaz LLC)
 
Edge Chasing Delayed Consistency: Pushing the Limits of Weak Memory Models
Edge Chasing Delayed Consistency: Pushing the Limits of Weak Memory ModelsEdge Chasing Delayed Consistency: Pushing the Limits of Weak Memory Models
Edge Chasing Delayed Consistency: Pushing the Limits of Weak Memory Modelsracesworkshop
 
CONFidence 2018: Who and why should fear hardware trojans? (Adam Kostrzewa)
CONFidence 2018: Who and why should fear hardware trojans? (Adam Kostrzewa)CONFidence 2018: Who and why should fear hardware trojans? (Adam Kostrzewa)
CONFidence 2018: Who and why should fear hardware trojans? (Adam Kostrzewa)PROIDEA
 
DevOpSec_DockerNPodMan-20230220.pdf
DevOpSec_DockerNPodMan-20230220.pdfDevOpSec_DockerNPodMan-20230220.pdf
DevOpSec_DockerNPodMan-20230220.pdfkanedafromparis
 
PmcTools: Whole-System, Low-Overhead Performance Measurement in FreeBSD
PmcTools: Whole-System, Low-Overhead Performance Measurement in FreeBSDPmcTools: Whole-System, Low-Overhead Performance Measurement in FreeBSD
PmcTools: Whole-System, Low-Overhead Performance Measurement in FreeBSDjkoshy
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented Programmingmukhtarhudaya
 
Digital Security by Design: CHERI-RISC-V - Simon Moore, University of Cambridge
Digital Security by Design: CHERI-RISC-V - Simon Moore, University of CambridgeDigital Security by Design: CHERI-RISC-V - Simon Moore, University of Cambridge
Digital Security by Design: CHERI-RISC-V - Simon Moore, University of CambridgeKTN
 
There's no magic... until you talk about databases
 There's no magic... until you talk about databases There's no magic... until you talk about databases
There's no magic... until you talk about databasesESUG
 
Object-Oriented Application Frameworks
Object-Oriented Application FrameworksObject-Oriented Application Frameworks
Object-Oriented Application Frameworkskim.mens
 
Kasser synergy amateur radio
Kasser synergy   amateur radioKasser synergy   amateur radio
Kasser synergy amateur radioJoseph KAsser
 
Unit No. 1 Introduction to Java.pptx
Unit No. 1 Introduction to Java.pptxUnit No. 1 Introduction to Java.pptx
Unit No. 1 Introduction to Java.pptxDrYogeshDeshmukh1
 
Reverse engineering
Reverse engineeringReverse engineering
Reverse engineeringSaswat Padhi
 
AI-INSPIRED IOT CHIPLETS AND 3D HETEROGENEOUS INTEGRATION.pdf
AI-INSPIRED IOT CHIPLETS AND 3D HETEROGENEOUS INTEGRATION.pdfAI-INSPIRED IOT CHIPLETS AND 3D HETEROGENEOUS INTEGRATION.pdf
AI-INSPIRED IOT CHIPLETS AND 3D HETEROGENEOUS INTEGRATION.pdfObject Automation
 
Uncharted3 effect technique
Uncharted3 effect techniqueUncharted3 effect technique
Uncharted3 effect techniqueMinGeun Park
 
Modularizing your Grails Application with Private Plugins - SpringOne 2GX 2012
Modularizing your Grails Application with Private Plugins - SpringOne 2GX 2012Modularizing your Grails Application with Private Plugins - SpringOne 2GX 2012
Modularizing your Grails Application with Private Plugins - SpringOne 2GX 2012kennethaliu
 
colorado4.pdf
colorado4.pdfcolorado4.pdf
colorado4.pdfbereketg4
 

Semelhante a A Look at Current Component Models from the Black-box Perspective (20)

Dissertation defense
Dissertation defenseDissertation defense
Dissertation defense
 
QPACE - QCD Parallel Computing on the Cell Broadband Engine™ (Cell/B.E.)
QPACE - QCD Parallel Computing on the Cell Broadband Engine™ (Cell/B.E.)QPACE - QCD Parallel Computing on the Cell Broadband Engine™ (Cell/B.E.)
QPACE - QCD Parallel Computing on the Cell Broadband Engine™ (Cell/B.E.)
 
PyCoRAM: Yet Another Implementation of CoRAM Memory Architecture for Modern F...
PyCoRAM: Yet Another Implementation of CoRAM Memory Architecture for Modern F...PyCoRAM: Yet Another Implementation of CoRAM Memory Architecture for Modern F...
PyCoRAM: Yet Another Implementation of CoRAM Memory Architecture for Modern F...
 
Clean sw 3_architecture
Clean sw 3_architectureClean sw 3_architecture
Clean sw 3_architecture
 
Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...
Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...
Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...
 
Edge Chasing Delayed Consistency: Pushing the Limits of Weak Memory Models
Edge Chasing Delayed Consistency: Pushing the Limits of Weak Memory ModelsEdge Chasing Delayed Consistency: Pushing the Limits of Weak Memory Models
Edge Chasing Delayed Consistency: Pushing the Limits of Weak Memory Models
 
CONFidence 2018: Who and why should fear hardware trojans? (Adam Kostrzewa)
CONFidence 2018: Who and why should fear hardware trojans? (Adam Kostrzewa)CONFidence 2018: Who and why should fear hardware trojans? (Adam Kostrzewa)
CONFidence 2018: Who and why should fear hardware trojans? (Adam Kostrzewa)
 
DevOpSec_DockerNPodMan-20230220.pdf
DevOpSec_DockerNPodMan-20230220.pdfDevOpSec_DockerNPodMan-20230220.pdf
DevOpSec_DockerNPodMan-20230220.pdf
 
PmcTools: Whole-System, Low-Overhead Performance Measurement in FreeBSD
PmcTools: Whole-System, Low-Overhead Performance Measurement in FreeBSDPmcTools: Whole-System, Low-Overhead Performance Measurement in FreeBSD
PmcTools: Whole-System, Low-Overhead Performance Measurement in FreeBSD
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented Programming
 
Digital Security by Design: CHERI-RISC-V - Simon Moore, University of Cambridge
Digital Security by Design: CHERI-RISC-V - Simon Moore, University of CambridgeDigital Security by Design: CHERI-RISC-V - Simon Moore, University of Cambridge
Digital Security by Design: CHERI-RISC-V - Simon Moore, University of Cambridge
 
There's no magic... until you talk about databases
 There's no magic... until you talk about databases There's no magic... until you talk about databases
There's no magic... until you talk about databases
 
Object-Oriented Application Frameworks
Object-Oriented Application FrameworksObject-Oriented Application Frameworks
Object-Oriented Application Frameworks
 
Kasser synergy amateur radio
Kasser synergy   amateur radioKasser synergy   amateur radio
Kasser synergy amateur radio
 
Unit No. 1 Introduction to Java.pptx
Unit No. 1 Introduction to Java.pptxUnit No. 1 Introduction to Java.pptx
Unit No. 1 Introduction to Java.pptx
 
Reverse engineering
Reverse engineeringReverse engineering
Reverse engineering
 
AI-INSPIRED IOT CHIPLETS AND 3D HETEROGENEOUS INTEGRATION.pdf
AI-INSPIRED IOT CHIPLETS AND 3D HETEROGENEOUS INTEGRATION.pdfAI-INSPIRED IOT CHIPLETS AND 3D HETEROGENEOUS INTEGRATION.pdf
AI-INSPIRED IOT CHIPLETS AND 3D HETEROGENEOUS INTEGRATION.pdf
 
Uncharted3 effect technique
Uncharted3 effect techniqueUncharted3 effect technique
Uncharted3 effect technique
 
Modularizing your Grails Application with Private Plugins - SpringOne 2GX 2012
Modularizing your Grails Application with Private Plugins - SpringOne 2GX 2012Modularizing your Grails Application with Private Plugins - SpringOne 2GX 2012
Modularizing your Grails Application with Private Plugins - SpringOne 2GX 2012
 
colorado4.pdf
colorado4.pdfcolorado4.pdf
colorado4.pdf
 

Mais de Premek Brada

UML-test Application for Automated Validation of Students’ UML Class Diagram
UML-test Application for Automated Validation of Students’ UML Class DiagramUML-test Application for Automated Validation of Students’ UML Class Diagram
UML-test Application for Automated Validation of Students’ UML Class DiagramPremek Brada
 
ReliSA KIV hlavni oblasti vyzkumu (2014-01)
ReliSA KIV hlavni oblasti vyzkumu (2014-01)ReliSA KIV hlavni oblasti vyzkumu (2014-01)
ReliSA KIV hlavni oblasti vyzkumu (2014-01)Premek Brada
 
Presentation -rmc-to-rtc
Presentation -rmc-to-rtcPresentation -rmc-to-rtc
Presentation -rmc-to-rtcPremek Brada
 
Brada -semantic-versioning-tool
Brada -semantic-versioning-toolBrada -semantic-versioning-tool
Brada -semantic-versioning-toolPremek Brada
 
CRCE - přehled datového modelu a vybraná API
CRCE - přehled datového modelu a vybraná APICRCE - přehled datového modelu a vybraná API
CRCE - přehled datového modelu a vybraná APIPremek Brada
 
CRCE Architecture Overview
CRCE Architecture OverviewCRCE Architecture Overview
CRCE Architecture OverviewPremek Brada
 
Safe Bundle Updates
Safe Bundle UpdatesSafe Bundle Updates
Safe Bundle UpdatesPremek Brada
 

Mais de Premek Brada (7)

UML-test Application for Automated Validation of Students’ UML Class Diagram
UML-test Application for Automated Validation of Students’ UML Class DiagramUML-test Application for Automated Validation of Students’ UML Class Diagram
UML-test Application for Automated Validation of Students’ UML Class Diagram
 
ReliSA KIV hlavni oblasti vyzkumu (2014-01)
ReliSA KIV hlavni oblasti vyzkumu (2014-01)ReliSA KIV hlavni oblasti vyzkumu (2014-01)
ReliSA KIV hlavni oblasti vyzkumu (2014-01)
 
Presentation -rmc-to-rtc
Presentation -rmc-to-rtcPresentation -rmc-to-rtc
Presentation -rmc-to-rtc
 
Brada -semantic-versioning-tool
Brada -semantic-versioning-toolBrada -semantic-versioning-tool
Brada -semantic-versioning-tool
 
CRCE - přehled datového modelu a vybraná API
CRCE - přehled datového modelu a vybraná APICRCE - přehled datového modelu a vybraná API
CRCE - přehled datového modelu a vybraná API
 
CRCE Architecture Overview
CRCE Architecture OverviewCRCE Architecture Overview
CRCE Architecture Overview
 
Safe Bundle Updates
Safe Bundle UpdatesSafe Bundle Updates
Safe Bundle Updates
 

Último

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 

Último (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

A Look at Current Component Models from the Black-box Perspective

  • 1. A Look at Current Component Models from the Black-box Perspective On the need for well-specified black-box components Premek Brada University of West Bohemia, Pilsen, Czech Republic Euromicro SCBSE, August 2009. Patras, Greece
  • 2. Agenda • Defining component • Defining and defending black box • Case studies • Lessons learned Euromicro 28.8.2009 Patras P.Brada: Black-box perspective 2
  • 3. What is component, anyway • Levels of understanding • Szyperski’s tiers: “business” and source level (buy instead of make)  design fragment reuse (~ADLs)  user-driven composition (deployment)  dynamic integration (~SOA) • Bachmann et al: “architectural component” is architectural abstraction with standardized properties and composition possibilities – not an functionality implementing blob with ad-hoc integration means Euromicro 28.8.2009 Patras P.Brada: Black-box perspective 3
  • 4. What is component, anyway Szyperski’s book 2nd edition, preface Euromicro 28.8.2009 Patras P.Brada: Black-box perspective 4
  • 5. The inflation of definitions • Szyperski 1997 (2002): three own defs • About 17 other defs around (1987-2007) Euromicro 28.8.2009 Patras P.Brada: Black-box perspective 5
  • 6. What is component, anyway • We talk about deployable architectural components here Together prevent property leaks • 7+ defs, shared view: and implementation dependencies – black-box (opaque) software element – with well-specified surface (aka interface) • completeness, includes dependencies; client readable – 3rd party composable and deployable – model conformant Sometimes omitted • type, interaction and composition rules Euromicro 28.8.2009 Patras P.Brada: Black-box perspective 6
  • 7. What is black box, then? David Parnas: On the Criteria … (1972) “Blackbox reuse refers to the concept of Szyperski (2000) reusing implementations without relying on anything but their interfaces and specifications. (…) ”In contrast, whitebox reuse refers to using a software fragment, through its interfaces, while relying on the understanding gained from studying the implementation. Euromicro 28.8.2009 Patras P.Brada: Black-box perspective 7
  • 8. Why black-box matters • Software Engineering core concept: modules -> interfaces -> components: information hiding enforced on both sides of the surface (provide, require) • Goals and consequences – prevent property leaks Why good specification [of the black box] – manage dependencies, composition matters – localize change effects – make software comprehensible, analyzable Euromicro 28.8.2009 Patras P.Brada: Black-box perspective 8
  • 9. When it does not… … other essential properties not achievable • Compositionality – cannot be deployed really anywhere, due to the internal (non-specified) dependencies – compound properties not deducable from composition of internal (non-specified) properties • Model conformance – implementation can bypass interaction standards Euromicro 28.8.2009 Patras P.Brada: Black-box perspective 9
  • 10. Aren’t we talking about the obvious? • Counterexamples – JavaBeans – allow source-level composition • white-box reuse – OSGi, EJB – not well specified black boxes • discussion follows Euromicro 28.8.2009 Patras P.Brada: Black-box perspective 10
  • 11. How do we assess opacity Does this component 1. Completeness of specification model support black-box reuse well? – Explicit required role 2. Specification-implementation consistency 3. Enforcement of black box – or “of information hiding” 4. Ease of feature reconstruction 5. Richness of contract types Euromicro 28.8.2009 Patras P.Brada: Black-box perspective 11
  • 12. Case study 1: OSGi • Explicit required role • In-completeness of specification – core: don’t declare services – std services: almost complete, not universal • Weak specification-implementation consistency – core: package resolving only • Moderate enforcement of black box – bind to declared packages and registered services only – class leaks from packages deprecated but easy Euromicro 28.8.2009 Patras P.Brada: Black-box perspective 12
  • 13. Case study 2: EJB • Explicit required role • Moderate completeness of specification – events for MDB, attributes for BMP – issue with annotation style declarations in EJB 3 • Mixed specification-implementation consistency – extremely poor for EJB 2.1 – good for annotation style EJB 3 • Enforcement of black box by framework Euromicro 28.8.2009 Patras P.Brada: Black-box perspective 13
  • 14. Why the transgressions? • Component model design: abstraction level, specification means – Bachmann: “API can only be silent about properties about which it can speak, and programming languages are only equipped to speak about a narrow range of properties.” • Implementation compromises / constraints – OSGi expert: Export-Service header deprecated because the framework does not act on it Euromicro 28.8.2009 Patras P.Brada: Black-box perspective 14
  • 15. Conclusions • Components are not as black box as we think • How far on the scale can we go (before falling off)?  call for sufficient abstraction level, completeness  call for adequate [run-time] enforcement Detailed analysis of state of art/practice needed. Euromicro 28.8.2009 Patras P.Brada: Black-box perspective 15