SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
ArchJava

Connecting Software Architecture to
         Implementation
           13/03/2012

             University of St Andrews
Software Architecture (recap)
• Software architecture
 describes the structure of a system
 Enabling more effective design, program
  understanding, and formal analysis
 Existing approaches decouple implementation
  code from architecture
 Leads to inconsistencies, confusion, violation of
  architectural properties
 Inhibits software evolution

                     University of St Andrews
Software Architecture Recap(cont’d)
• Software system collection of
 components,
their connections
• Showing constraints on component interaction
• Describing architecture in formal ADL’s




                  University of St Andrews
ADL’s (briefly)
• ADL’s aid in specification and analysis of high
  level designs
• Existing ADL’s loosely coupled to
  implementation languages causing problems
  in analysis, implementation, understanding
  and evolution
• No guarantee that implementation code obeys
  architectural constraints

                   University of St Andrews
Module Interconnection
           Languages(MIL)
Support system decomposition from separate
 modules
ADL’s make connectors explicit to describe
 data and control flow between components
MIL’s describe the uses relationship between
 modules
But MIL’s provide encapsulation by hiding
 names

                  University of St Andrews
ArchJava
• ArchJava is an extension to Java that
• seamlessly unifies software architecture with
  implementation,
• ensuring that the implementation conforms to
  architectural constraints.
• Guarantees communication integrity between
  an architecture and its implementation


                   University of St Andrews
ArchJava
ArchJava seamlessly unifies architectural
 structure and implementation in one language
allowing flexible implementation techniques
ensuring traceability between architecture
 and code, and
 supporting the co-evolution of
architecture and implementation.


                  University of St Andrews
ArchJava

Guarantees communication integrity even in
 presence of advanced architectural features
 like run time component creation and
 connection
Similar to Darwin which supports dynamic
 changes in distributed architectures



                  University of St Andrews
ArchJava Cont’d

• Key benefits
include better program understanding,
reliable architectural reasoning about code
keeping architecture and code consistent as
  they evolve,
encouraging more developers to take
  advantage of software architecture.


                   University of St Andrews
ArchJava
• Introduces new language constructs
 components
 connections
 ports
• These constructs work together to express
  software architecture



                   University of St Andrews
ArchJava
• Language constructs
A component is a special object that
  communicates with other components in a
  structured way. Is an instance of the
  component class
Components communicate at same level
  through explicitly declared ports
Regular method calls not allowed

                  University of St Andrews
ArchJava
• Language constructs
A port represents a logical communication
  channel between a component and one or
  more components its connected to
Ports declare 3 methods specified using
  requires, provides, and broadcasts keywords



                   University of St Andrews
ArchJava Language constructs
• Provided method implemented by component
  and available to other components connected
  to the port
• Required method provided by other
  components to this port
• Broadcast methods similar to required
  methods but can be connected to any number
  of implementations

                  University of St Andrews
ArchJava Language constructs
This port design specifies services
 implemented by a component and services
 required by a component to do it job
Required interfaces make dependencies
 explicit
Ports also make it easier to reason about
 components communication patterns
Abstract design allows specification and type
 checking before implementation starts
                   University of St Andrews
ArchJava Language constructs
• Connections
Connection consistency checks ensure that
  each required method is bound to a unique
  provided method
Alternative connection semantics
  implemented by writing ‘smart connector’
  components


                  University of St Andrews
ArchJava
• Communication integrity
Components in an architecture can only call
  each other’s methods along declared
  connections between ports
Components are only able to directly invoke
  methods of their subcomponents



                   University of St Andrews
ArchJava
• Dynamic architectures
Covered by creating and connecting together
  a dynamically determined number of
  components
Connected using a connect expression at run
  time
A Connection pattern used to describe set of
  connections instantiated at run time using
  connect expressions
                  University of St Andrews
ArchJava
• Port interface

Describes a port that can be instantiated
 several times to communicate through
 different connections




                   University of St Andrews
ArchJava
• Removing components and connections
No explicit way to remove components and
  connections
Components garbage-collected when they are
  no longer reachable through direct references
  or connections



                   University of St Andrews
ArchJava
• Communication integrity

All inter-component method calls must follow
 the architectural connections
Except method calls from a component to its
 children



                  University of St Andrews
ArchJava
• Direct method calls
All direct component calls made from a
  sending component instance must be to the
  component itself or to its immediate
  subcomponent




                  University of St Andrews
ArchJava
• Method calls through ports
a connection pattern in a component allows
  method calls between its immediate
  subcomponents through connected ports
Uses a two-part test to verify that all method
  calls conform to a connection pattern
Every connect expression must match a
  connect pattern in the component

                   University of St Andrews
ArchJava
• Limitations
Only applicable to a programs in a single
  language and running on a single JVM
Focus on communication integrity doesn’t
  support other architectural reasoning such as
  connection protocols, architectural styles, or
  component multiplicity


                    University of St Andrews
ArchJava
• Evaluation
• Can ArchJava express architecture of a real
  program of significant complexity?
• How difficult is it to reengineer a Java
  program to express its architecture explicitly in
  ArchJava?
• Does expressing a programs architecture in
  ArchJava help or hinder software evolution?

                    University of St Andrews
ArchJava
• Hypothesis
Hypothesis 1:
Developers have a conceptual model of their
  architecture that is mostly accurate, but this
  model may be a simplification of reality, and it
  is often not explicit in the code.



                    University of St Andrews
ArchJava
• Hypothesis 2
 Programming languages that prohibit sharing
  data between components are too inflexible to
  express the natural architecture for many
  programs.
• Hypothesis 3
 Describing an existing program’s architecture
  with ArchJava may involve significant
  restructuring if the desired architecture does not
  match the implementation well
                     University of St Andrews
ArchJava
• Hypothesis 4
 Refactoring an application to expose its
  architecture is done most efficiently in small
  increments.
Hypothesis 5
• Applications can be translated into ArchJava
  with a modest amount of effort, and without
  excessive code bloat.

                    University of St Andrews
ArchJava
• Hypothesis 6
 Expressing software architecture in ArchJava
  highlights refactoring opportunities by making
  communication protocols explicit.
• Hypothesis 7
 Using separate ports and connections to
  distinguish different protocols and describing
  protocols with separate provided and required
  port interfaces may ease program understanding
  tasks.
                   University of St Andrews
ArchJava
• Hypothesis 8
Communication integrity in ArchJava
  encourages local communication and helps to
  reduce coupling between components
 Hypothesis 9
An explicit software architecture makes it
  easier to identify and evolve the components
  involved in a change

                   University of St Andrews

Mais conteúdo relacionado

Mais procurados

Software Architecture Taxonomies - Behaviour: Components & Connectors
Software Architecture Taxonomies - Behaviour: Components & ConnectorsSoftware Architecture Taxonomies - Behaviour: Components & Connectors
Software Architecture Taxonomies - Behaviour: Components & ConnectorsJose Emilio Labra Gayo
 
Overlapping optimization with parsing through metagrammars
Overlapping optimization with parsing through metagrammarsOverlapping optimization with parsing through metagrammars
Overlapping optimization with parsing through metagrammarsIAEME Publication
 
Tutorial on J2EE versus .NET for .NET Programmers
Tutorial on J2EE versus .NET for .NET Programmers Tutorial on J2EE versus .NET for .NET Programmers
Tutorial on J2EE versus .NET for .NET Programmers David Freitas
 
[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architectureIvano Malavolta
 
Software Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsSoftware Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsJose Emilio Labra Gayo
 
Keyphrase Extraction And Source Code Similarity Detection- A Survey
Keyphrase Extraction And Source Code Similarity Detection- A Survey Keyphrase Extraction And Source Code Similarity Detection- A Survey
Keyphrase Extraction And Source Code Similarity Detection- A Survey Nakul Sharma
 
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENT
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENTPROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENT
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENTijdpsjournal
 
Mapping and visualization of source code a survey
Mapping and visualization of source code a surveyMapping and visualization of source code a survey
Mapping and visualization of source code a surveyNakul Sharma
 
[2015/2016] Architectural languages
[2015/2016] Architectural languages[2015/2016] Architectural languages
[2015/2016] Architectural languagesIvano Malavolta
 
Introduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGESIntroduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGESIvano Malavolta
 
[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software ArchitectureIvano Malavolta
 

Mais procurados (19)

Neha_Resume_Dev
Neha_Resume_DevNeha_Resume_Dev
Neha_Resume_Dev
 
Software Architecture Taxonomies - Behaviour: Components & Connectors
Software Architecture Taxonomies - Behaviour: Components & ConnectorsSoftware Architecture Taxonomies - Behaviour: Components & Connectors
Software Architecture Taxonomies - Behaviour: Components & Connectors
 
Madhurima_Resume
Madhurima_ResumeMadhurima_Resume
Madhurima_Resume
 
Overlapping optimization with parsing through metagrammars
Overlapping optimization with parsing through metagrammarsOverlapping optimization with parsing through metagrammars
Overlapping optimization with parsing through metagrammars
 
Tutorial on J2EE versus .NET for .NET Programmers
Tutorial on J2EE versus .NET for .NET Programmers Tutorial on J2EE versus .NET for .NET Programmers
Tutorial on J2EE versus .NET for .NET Programmers
 
[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture
 
Bhavani HS
Bhavani HSBhavani HS
Bhavani HS
 
Software Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsSoftware Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - Definitions
 
FEDT and VB .NET
FEDT  and VB .NETFEDT  and VB .NET
FEDT and VB .NET
 
Keyphrase Extraction And Source Code Similarity Detection- A Survey
Keyphrase Extraction And Source Code Similarity Detection- A Survey Keyphrase Extraction And Source Code Similarity Detection- A Survey
Keyphrase Extraction And Source Code Similarity Detection- A Survey
 
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENT
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENTPROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENT
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENT
 
Mapping and visualization of source code a survey
Mapping and visualization of source code a surveyMapping and visualization of source code a survey
Mapping and visualization of source code a survey
 
[2015/2016] Architectural languages
[2015/2016] Architectural languages[2015/2016] Architectural languages
[2015/2016] Architectural languages
 
Aq4301224227
Aq4301224227Aq4301224227
Aq4301224227
 
Introduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGESIntroduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGES
 
[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture
 
ChetanBhasincv
ChetanBhasincvChetanBhasincv
ChetanBhasincv
 
Resume_SameerajaKVL
Resume_SameerajaKVLResume_SameerajaKVL
Resume_SameerajaKVL
 
Sarvesh_kumar
Sarvesh_kumarSarvesh_kumar
Sarvesh_kumar
 

Semelhante a Arch java

Middleware Technologies
Middleware Technologies Middleware Technologies
Middleware Technologies prakashk453625
 
Middle ware Technologies
Middle ware TechnologiesMiddle ware Technologies
Middle ware Technologiesprakashk453625
 
Middleware and Middleware in distributed application
Middleware and Middleware in distributed applicationMiddleware and Middleware in distributed application
Middleware and Middleware in distributed applicationRishikese MR
 
Introduction to vb.net
Introduction to vb.netIntroduction to vb.net
Introduction to vb.netsuraj pandey
 
Distributed system architecture
Distributed system architectureDistributed system architecture
Distributed system architectureYisal Khan
 
Perforce on Tour 2015 - Optimising the Developer Pipeline: Deliver Faster & ...
Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & ...Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & ...
Perforce on Tour 2015 - Optimising the Developer Pipeline: Deliver Faster & ...Perforce
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 
An Introduction to Software Architecture
An Introduction to Software ArchitectureAn Introduction to Software Architecture
An Introduction to Software ArchitectureRahimLotfi
 
An Architecture for Toolbox-based Software Architecture Reconstruction Solution
An Architecture for Toolbox-based Software Architecture Reconstruction SolutionAn Architecture for Toolbox-based Software Architecture Reconstruction Solution
An Architecture for Toolbox-based Software Architecture Reconstruction SolutionM Firdaus Harun
 
core java basic learning presentation part 1
core java basic learning presentation part 1core java basic learning presentation part 1
core java basic learning presentation part 1AaruPathan
 
Scalable Infrastructure - DevOpsDays London 2022 - Kief Morris.pdf
Scalable Infrastructure - DevOpsDays London 2022 - Kief Morris.pdfScalable Infrastructure - DevOpsDays London 2022 - Kief Morris.pdf
Scalable Infrastructure - DevOpsDays London 2022 - Kief Morris.pdfKief Morris
 
Anypoint connector dev kit
Anypoint connector dev kitAnypoint connector dev kit
Anypoint connector dev kitSon Nguyen
 
A Tool for Optimizing Java 8 Stream Software via Automated Refactoring
A Tool for Optimizing Java 8 Stream Software via Automated RefactoringA Tool for Optimizing Java 8 Stream Software via Automated Refactoring
A Tool for Optimizing Java 8 Stream Software via Automated RefactoringRaffi Khatchadourian
 
.net Based Component Technologies
.net Based Component Technologies.net Based Component Technologies
.net Based Component Technologiesprakashk453625
 
Intro to Microsoft.NET
Intro to Microsoft.NET Intro to Microsoft.NET
Intro to Microsoft.NET rchakra
 

Semelhante a Arch java (20)

Middleware Technologies
Middleware Technologies Middleware Technologies
Middleware Technologies
 
Middle ware Technologies
Middle ware TechnologiesMiddle ware Technologies
Middle ware Technologies
 
Middleware and Middleware in distributed application
Middleware and Middleware in distributed applicationMiddleware and Middleware in distributed application
Middleware and Middleware in distributed application
 
Introduction to vb.net
Introduction to vb.netIntroduction to vb.net
Introduction to vb.net
 
Distributed system architecture
Distributed system architectureDistributed system architecture
Distributed system architecture
 
Duc le CV
Duc le CVDuc le CV
Duc le CV
 
Perforce on Tour 2015 - Optimising the Developer Pipeline: Deliver Faster & ...
Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & ...Perforce on Tour 2015 -  Optimising the Developer Pipeline: Deliver Faster & ...
Perforce on Tour 2015 - Optimising the Developer Pipeline: Deliver Faster & ...
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
C++ N Pv2
C++ N Pv2C++ N Pv2
C++ N Pv2
 
An Introduction to Software Architecture
An Introduction to Software ArchitectureAn Introduction to Software Architecture
An Introduction to Software Architecture
 
An Architecture for Toolbox-based Software Architecture Reconstruction Solution
An Architecture for Toolbox-based Software Architecture Reconstruction SolutionAn Architecture for Toolbox-based Software Architecture Reconstruction Solution
An Architecture for Toolbox-based Software Architecture Reconstruction Solution
 
core java basic learning presentation part 1
core java basic learning presentation part 1core java basic learning presentation part 1
core java basic learning presentation part 1
 
Scalable Infrastructure - DevOpsDays London 2022 - Kief Morris.pdf
Scalable Infrastructure - DevOpsDays London 2022 - Kief Morris.pdfScalable Infrastructure - DevOpsDays London 2022 - Kief Morris.pdf
Scalable Infrastructure - DevOpsDays London 2022 - Kief Morris.pdf
 
sample-resume
sample-resumesample-resume
sample-resume
 
Resume
ResumeResume
Resume
 
Anypoint connector dev kit
Anypoint connector dev kitAnypoint connector dev kit
Anypoint connector dev kit
 
A Tool for Optimizing Java 8 Stream Software via Automated Refactoring
A Tool for Optimizing Java 8 Stream Software via Automated RefactoringA Tool for Optimizing Java 8 Stream Software via Automated Refactoring
A Tool for Optimizing Java 8 Stream Software via Automated Refactoring
 
Ijetcas14 385
Ijetcas14 385Ijetcas14 385
Ijetcas14 385
 
.net Based Component Technologies
.net Based Component Technologies.net Based Component Technologies
.net Based Component Technologies
 
Intro to Microsoft.NET
Intro to Microsoft.NET Intro to Microsoft.NET
Intro to Microsoft.NET
 

Ú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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
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...
 

Arch java

  • 1. ArchJava Connecting Software Architecture to Implementation 13/03/2012 University of St Andrews
  • 2. Software Architecture (recap) • Software architecture  describes the structure of a system  Enabling more effective design, program understanding, and formal analysis  Existing approaches decouple implementation code from architecture  Leads to inconsistencies, confusion, violation of architectural properties  Inhibits software evolution University of St Andrews
  • 3. Software Architecture Recap(cont’d) • Software system collection of  components, their connections • Showing constraints on component interaction • Describing architecture in formal ADL’s University of St Andrews
  • 4. ADL’s (briefly) • ADL’s aid in specification and analysis of high level designs • Existing ADL’s loosely coupled to implementation languages causing problems in analysis, implementation, understanding and evolution • No guarantee that implementation code obeys architectural constraints University of St Andrews
  • 5. Module Interconnection Languages(MIL) Support system decomposition from separate modules ADL’s make connectors explicit to describe data and control flow between components MIL’s describe the uses relationship between modules But MIL’s provide encapsulation by hiding names University of St Andrews
  • 6. ArchJava • ArchJava is an extension to Java that • seamlessly unifies software architecture with implementation, • ensuring that the implementation conforms to architectural constraints. • Guarantees communication integrity between an architecture and its implementation University of St Andrews
  • 7. ArchJava ArchJava seamlessly unifies architectural structure and implementation in one language allowing flexible implementation techniques ensuring traceability between architecture and code, and  supporting the co-evolution of architecture and implementation. University of St Andrews
  • 8. ArchJava Guarantees communication integrity even in presence of advanced architectural features like run time component creation and connection Similar to Darwin which supports dynamic changes in distributed architectures University of St Andrews
  • 9. ArchJava Cont’d • Key benefits include better program understanding, reliable architectural reasoning about code keeping architecture and code consistent as they evolve, encouraging more developers to take advantage of software architecture. University of St Andrews
  • 10. ArchJava • Introduces new language constructs  components  connections  ports • These constructs work together to express software architecture University of St Andrews
  • 11. ArchJava • Language constructs A component is a special object that communicates with other components in a structured way. Is an instance of the component class Components communicate at same level through explicitly declared ports Regular method calls not allowed University of St Andrews
  • 12. ArchJava • Language constructs A port represents a logical communication channel between a component and one or more components its connected to Ports declare 3 methods specified using requires, provides, and broadcasts keywords University of St Andrews
  • 13. ArchJava Language constructs • Provided method implemented by component and available to other components connected to the port • Required method provided by other components to this port • Broadcast methods similar to required methods but can be connected to any number of implementations University of St Andrews
  • 14. ArchJava Language constructs This port design specifies services implemented by a component and services required by a component to do it job Required interfaces make dependencies explicit Ports also make it easier to reason about components communication patterns Abstract design allows specification and type checking before implementation starts University of St Andrews
  • 15. ArchJava Language constructs • Connections Connection consistency checks ensure that each required method is bound to a unique provided method Alternative connection semantics implemented by writing ‘smart connector’ components University of St Andrews
  • 16. ArchJava • Communication integrity Components in an architecture can only call each other’s methods along declared connections between ports Components are only able to directly invoke methods of their subcomponents University of St Andrews
  • 17. ArchJava • Dynamic architectures Covered by creating and connecting together a dynamically determined number of components Connected using a connect expression at run time A Connection pattern used to describe set of connections instantiated at run time using connect expressions University of St Andrews
  • 18. ArchJava • Port interface Describes a port that can be instantiated several times to communicate through different connections University of St Andrews
  • 19. ArchJava • Removing components and connections No explicit way to remove components and connections Components garbage-collected when they are no longer reachable through direct references or connections University of St Andrews
  • 20. ArchJava • Communication integrity All inter-component method calls must follow the architectural connections Except method calls from a component to its children University of St Andrews
  • 21. ArchJava • Direct method calls All direct component calls made from a sending component instance must be to the component itself or to its immediate subcomponent University of St Andrews
  • 22. ArchJava • Method calls through ports a connection pattern in a component allows method calls between its immediate subcomponents through connected ports Uses a two-part test to verify that all method calls conform to a connection pattern Every connect expression must match a connect pattern in the component University of St Andrews
  • 23. ArchJava • Limitations Only applicable to a programs in a single language and running on a single JVM Focus on communication integrity doesn’t support other architectural reasoning such as connection protocols, architectural styles, or component multiplicity University of St Andrews
  • 24. ArchJava • Evaluation • Can ArchJava express architecture of a real program of significant complexity? • How difficult is it to reengineer a Java program to express its architecture explicitly in ArchJava? • Does expressing a programs architecture in ArchJava help or hinder software evolution? University of St Andrews
  • 25. ArchJava • Hypothesis Hypothesis 1: Developers have a conceptual model of their architecture that is mostly accurate, but this model may be a simplification of reality, and it is often not explicit in the code. University of St Andrews
  • 26. ArchJava • Hypothesis 2  Programming languages that prohibit sharing data between components are too inflexible to express the natural architecture for many programs. • Hypothesis 3  Describing an existing program’s architecture with ArchJava may involve significant restructuring if the desired architecture does not match the implementation well University of St Andrews
  • 27. ArchJava • Hypothesis 4  Refactoring an application to expose its architecture is done most efficiently in small increments. Hypothesis 5 • Applications can be translated into ArchJava with a modest amount of effort, and without excessive code bloat. University of St Andrews
  • 28. ArchJava • Hypothesis 6  Expressing software architecture in ArchJava highlights refactoring opportunities by making communication protocols explicit. • Hypothesis 7  Using separate ports and connections to distinguish different protocols and describing protocols with separate provided and required port interfaces may ease program understanding tasks. University of St Andrews
  • 29. ArchJava • Hypothesis 8 Communication integrity in ArchJava encourages local communication and helps to reduce coupling between components  Hypothesis 9 An explicit software architecture makes it easier to identify and evolve the components involved in a change University of St Andrews