SlideShare a Scribd company logo
1 of 27
Download to read offline
A Unified Approach to 

Architecture Conformance
Checking
Andrea Caracciolo, Mircea Filip Lungu, Oscar Nierstrasz 

WICSA ’15
http://scg.unibe.ch
Architecture Erosion
2
=Design Code/
Architecture Erosion
3
Compliance Monitoring
Compliance Monitoring
4
non-automated
techniques *60%
* How Do Software Architects Specify and Validate Quality Requirements? (ECSA 2014)
5
A
Б
诶
Compliance Monitoring
6
A
Б
诶
Tools
Compliance Monitoring
7
A
Б
诶
Specification
Formalisms
Compliance Monitoring
8
A
Б
诶
Reports
Compliance Monitoring
9
A
Б
诶
Compliance Monitoring
10
A
诶
Compliance Monitoring
11
Persistence cannot depend on Service
Impl must have annotation "@Service" 

System cannot contain cycles
Dictō
A Unified Approach
Dictō
12
@ scg.unibe.ch/dicto
Persistence cannot depend on Service

Service must have annotation “@Service”

System cannot contain cycles

Rules
Dictō
13
Persistence cannot depend on Service

Service must have annotation “@Service”

System cannot contain cycles

@ scg.unibe.ch/dicto
Persistence = Package with name:"app.*persistence.*"

Service = Package with name:”app.*service.*"

Entities
Rules
Dictō
14
@ scg.unibe.ch/dicto
Persistence cannot depend on Service

only Service can have annotation “@Service”

System cannot contain cycles

Rules
Entities
Persistence = Package with name:"app.*persistence.*"

Service = Package with name:”app.*service.*"
Dictō
15
Persistence cannot depend on Service

only Service can have annotation “@Service”

System cannot contain cycles

@ scg.unibe.ch/dicto
Persistence = Package with name:"app.*persistence.*"

Service = Package with name:”app.*service.*”, 

name!:"*persistence*"

Entities
Rules
Dictō
16
@ scg.unibe.ch/dicto
Rules
Method can only be named "String"

only Package can contain dead methods
XMLTag must have attribute “String"

WebResource must have content "String"
Method must catch Class
WebResource must have latency < int ms

WebResource must handle load from int users
Maintainability
Compatibility
Reliability
Performance
Analysis
17
depend-on(app.xx.persistence.yy, app.xx.service)
depend-on(app.xx.persistence.yy2, app.xx.service)
depend-on(app.xx.persistence.yy3, app.xx.service)
Persistence cannot depend on Service

.xml.sh
Analysis
18
Persistence cannot depend on Service

depend-on(app.xx.persistence.yy, app.xx.service) = True
depend-on(app.xx.persistence.yy2, app.xx.service) = False
depend-on(app.xx.persistence.yy3, app.xx.service) = False
.csv
Reporting
19
Persistence cannot depend on Service

Service must have annotation “@Service”

System cannot contain cycles
Dictō
Statistics
20
21
Reporting
22
New Issue
Statistics
Dictō
Persistence cannot depend on Service

Service must have annotation “@Service”

System cannot contain cycles
23
Evaluation
24
Medium size company
various - Java EE / .NET

100 employees
Open source project
LMS - PHP (1.8M LOC)

12 service providers, 900’000+ users
Large size company

B2B - Java EE (50K LOC)

1’000 employees
Evaluation
25
Impact
Process? Culture? 

Value

Cost–effectiveness? Quality?

Applicability

Expressivity? Usability?
Summary
Dictō

A uniform, readable, executable DSL

for specifying architectural constraints. 

26
Persistence cannot depend on Service

Service must have annotation “@Service”

System cannot contain cycles
@ scg.unibe.ch/dictoAndrea Caracciolo
Discussion Topics
27
Persistence cannot depend on Service

Service must have annotation “@Service”

System cannot contain cycles
@ scg.unibe.ch/dictoAndrea Caracciolo
- how to streamline/incentivize compliance monitoring?

- which are the common obstacles?

More Related Content

Similar to Dicto - wicsa 2015

Managing microservices with Istio Service Mesh
Managing microservices with Istio Service MeshManaging microservices with Istio Service Mesh
Managing microservices with Istio Service MeshRafik HARABI
 
API Gateway How-To: The Many Ways to Apply the Gateway Pattern
API Gateway How-To: The Many Ways to Apply the Gateway PatternAPI Gateway How-To: The Many Ways to Apply the Gateway Pattern
API Gateway How-To: The Many Ways to Apply the Gateway PatternVMware Tanzu
 
Access Control Rules Tester
Access Control Rules TesterAccess Control Rules Tester
Access Control Rules TesterAndrew Petukhov
 
Documentation
DocumentationDocumentation
DocumentationKalyan A
 
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDB
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDBIntroducing MongoDB Stitch, Backend-as-a-Service from MongoDB
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDBMongoDB
 
Mining attributes
Mining attributesMining attributes
Mining attributesSandra Alex
 
API Management Microservices beyond HIP
API Management Microservices beyond HIPAPI Management Microservices beyond HIP
API Management Microservices beyond HIPSmartWave
 
13 asp.net session19
13 asp.net session1913 asp.net session19
13 asp.net session19Vivek chan
 
Parallel verification of software architecture design
Parallel verification of software architecture designParallel verification of software architecture design
Parallel verification of software architecture designNacha Chondamrongkul
 
Comparison between OGC Sensor Observation Service and SensorThings API
Comparison between OGC Sensor Observation Service and SensorThings APIComparison between OGC Sensor Observation Service and SensorThings API
Comparison between OGC Sensor Observation Service and SensorThings APISensorUp
 
IRJET- Pervasive Computing Service Discovery in Secure Framework Environment
IRJET- Pervasive Computing Service Discovery in Secure Framework EnvironmentIRJET- Pervasive Computing Service Discovery in Secure Framework Environment
IRJET- Pervasive Computing Service Discovery in Secure Framework EnvironmentIRJET Journal
 
Root Cause Detection in a Service-Oriented Architecture
Root Cause Detection in a Service-Oriented ArchitectureRoot Cause Detection in a Service-Oriented Architecture
Root Cause Detection in a Service-Oriented ArchitectureSam Shah
 
ISTIO Deep Dive
ISTIO Deep DiveISTIO Deep Dive
ISTIO Deep DiveYong Feng
 
[2019]Version-based Microservice Analysis Monitoring and Visualization
[2019]Version-based Microservice Analysis Monitoring and Visualization[2019]Version-based Microservice Analysis Monitoring and Visualization
[2019]Version-based Microservice Analysis Monitoring and VisualizationChenChunYu2
 
Resilient microservices
Resilient microservicesResilient microservices
Resilient microservicesMaxim Shelest
 
Monitoring modern applications: Introduction to AWS xray
Monitoring modern applications: Introduction to AWS xrayMonitoring modern applications: Introduction to AWS xray
Monitoring modern applications: Introduction to AWS xrayAmazon Web Services
 
Open data platform for integrated urban CPSs
Open data platform for integrated urban CPSsOpen data platform for integrated urban CPSs
Open data platform for integrated urban CPSsBetterSolutions
 
Achieve Full API Lifecycle Management Using NGINX Controller – EMEA
Achieve Full API Lifecycle Management Using NGINX Controller – EMEAAchieve Full API Lifecycle Management Using NGINX Controller – EMEA
Achieve Full API Lifecycle Management Using NGINX Controller – EMEANGINX, Inc.
 
Observability foundations in dynamically evolving architectures
Observability foundations in dynamically evolving architecturesObservability foundations in dynamically evolving architectures
Observability foundations in dynamically evolving architecturesBoyan Dimitrov
 

Similar to Dicto - wicsa 2015 (20)

Managing microservices with Istio Service Mesh
Managing microservices with Istio Service MeshManaging microservices with Istio Service Mesh
Managing microservices with Istio Service Mesh
 
API Gateway How-To: The Many Ways to Apply the Gateway Pattern
API Gateway How-To: The Many Ways to Apply the Gateway PatternAPI Gateway How-To: The Many Ways to Apply the Gateway Pattern
API Gateway How-To: The Many Ways to Apply the Gateway Pattern
 
Access Control Rules Tester
Access Control Rules TesterAccess Control Rules Tester
Access Control Rules Tester
 
Documentation
DocumentationDocumentation
Documentation
 
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDB
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDBIntroducing MongoDB Stitch, Backend-as-a-Service from MongoDB
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDB
 
Asp.net,mvc
Asp.net,mvcAsp.net,mvc
Asp.net,mvc
 
Mining attributes
Mining attributesMining attributes
Mining attributes
 
API Management Microservices beyond HIP
API Management Microservices beyond HIPAPI Management Microservices beyond HIP
API Management Microservices beyond HIP
 
13 asp.net session19
13 asp.net session1913 asp.net session19
13 asp.net session19
 
Parallel verification of software architecture design
Parallel verification of software architecture designParallel verification of software architecture design
Parallel verification of software architecture design
 
Comparison between OGC Sensor Observation Service and SensorThings API
Comparison between OGC Sensor Observation Service and SensorThings APIComparison between OGC Sensor Observation Service and SensorThings API
Comparison between OGC Sensor Observation Service and SensorThings API
 
IRJET- Pervasive Computing Service Discovery in Secure Framework Environment
IRJET- Pervasive Computing Service Discovery in Secure Framework EnvironmentIRJET- Pervasive Computing Service Discovery in Secure Framework Environment
IRJET- Pervasive Computing Service Discovery in Secure Framework Environment
 
Root Cause Detection in a Service-Oriented Architecture
Root Cause Detection in a Service-Oriented ArchitectureRoot Cause Detection in a Service-Oriented Architecture
Root Cause Detection in a Service-Oriented Architecture
 
ISTIO Deep Dive
ISTIO Deep DiveISTIO Deep Dive
ISTIO Deep Dive
 
[2019]Version-based Microservice Analysis Monitoring and Visualization
[2019]Version-based Microservice Analysis Monitoring and Visualization[2019]Version-based Microservice Analysis Monitoring and Visualization
[2019]Version-based Microservice Analysis Monitoring and Visualization
 
Resilient microservices
Resilient microservicesResilient microservices
Resilient microservices
 
Monitoring modern applications: Introduction to AWS xray
Monitoring modern applications: Introduction to AWS xrayMonitoring modern applications: Introduction to AWS xray
Monitoring modern applications: Introduction to AWS xray
 
Open data platform for integrated urban CPSs
Open data platform for integrated urban CPSsOpen data platform for integrated urban CPSs
Open data platform for integrated urban CPSs
 
Achieve Full API Lifecycle Management Using NGINX Controller – EMEA
Achieve Full API Lifecycle Management Using NGINX Controller – EMEAAchieve Full API Lifecycle Management Using NGINX Controller – EMEA
Achieve Full API Lifecycle Management Using NGINX Controller – EMEA
 
Observability foundations in dynamically evolving architectures
Observability foundations in dynamically evolving architecturesObservability foundations in dynamically evolving architectures
Observability foundations in dynamically evolving architectures
 

Recently uploaded

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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
🐬 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
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
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
 
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
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
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
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
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
 
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
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 

Recently uploaded (20)

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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
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...
 
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...
 
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...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
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
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
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...
 
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
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 

Dicto - wicsa 2015