SlideShare a Scribd company logo
1 of 26
Download to read offline
A Systematic Method for Software Architecture Recovery
A Systematic Method
for
Software Architecture Recovery
Fritz Solms
SESAr Research Group
Dept of Computer Science, University of Pretoria
April 30, 2015
A Systematic Method for Software Architecture Recovery
Introduction
Context
Ongoing system maintenance
ā‡’ architectural drift & erosion
ā†‘ complexity, maintenance costs & arch failure
& ā†“ understanding ā‡’ accelerates process
only deļ¬nitive info on architecture
Source artifacts (e.g. code)
ā‡’ Architecture Recovery
information extraction, abstraction & description
āˆ’ā†’ architectural description
A Systematic Method for Software Architecture Recovery
Introduction
Motivation
Automated Software Architecture Recovery methods
do not currenly expose architectural abstractions suļ¬ƒciently
only partially useful
Manual Software Architecture Recovery Methods
Very labour intensive
Do not scale well
A Systematic Method for Software Architecture Recovery
Introduction
Research Question
Can we devise a manual (tool assisted) method which
can be used to recover software architecture of large industrial
systems
exposes the required architecural abstractions
Are the outputs useful?
A Systematic Method for Software Architecture Recovery
Introduction
What is Software Achitecture?
Many diļ¬€erent deļ¬nitions of software architecture
Choose one which
is consistent with
architecture analysis aproaches
reference architectures
allows for
well deļ¬ned boundary btw application and architecture design
continuous addition of application functionality within deļ¬ned
software architecture.
Deļ¬nition
Software Architecture is the speciļ¬cation of the software infrastructure
addressing non-functional requirements within which application
functionality addressing primary functional requirements can be deployed
and executeda
.
aNon-functional reuirements may give rise to sedondary functional requirements
A Systematic Method for Software Architecture Recovery
Related work
Architecture Recovery Output
ISO/IEC/IEEE 42010:2011
consensus around requirements for an architectural description
does not prescribe content
Pinzger & Gall 2002, van Heesch et al 2012
quality & eļ¬ƒciency of architecture decision recovery
improved by recovering architectural abstractions
ADLs ā†’ very low adoption rate
few can capture abstractions explicitly
some: patterns/styles
tactics: only aspect-oriented ADLs (e.g. AO-ADL)
QRs modeled as cross-cutting concerns
addressed through tactics modeled as aspects
No explicit support for concepts & constraints for application
components.
A Systematic Method for Software Architecture Recovery
SyMAR
SyMAR
guides software architects
through (eļ¬ƒcient) manual recovery of software architecture
relies on request tracing as primary tool
to discover architecturally signiļ¬cant components.
Output
ISO/ISEC/IEEE 42010 compliant architectural description
containing the architectural abstractions
A Systematic Method for Software Architecture Recovery
SyMAR
Overview of SyMAR
<<structured>>
abstraction and description
identify architectural responsibilities for
level of granularity and abstract assign to
abstract architectural components
abstract infrastructure to architectural
style/pattern for component
map architectural components onto
framework components
abstract code addressing quality
requirements into tactics
abstract application components
into concepts and constraints for
application components
project out request trace views
for level of granularity
ACCV
RTVs
FMV
RAV
SV
TV
<<structured>>
preparation
documentation analysis
interviews
<<structured>>
extraction
request tracing
select component
[there are lower level architecturally significant components]
[there no more lower level architecturally significant components]
A Systematic Method for Software Architecture Recovery
An Industrial Case Study
Case Study
End 2012 ā†’ requested to
reverse engineer SA of large corporate banking system
> 3 Ɨ 106
lines of own code
Original architecture
based on SOA framework for banking systems bought from vendor.
processes:
standard vendor provided processes customized and extended
own processes added
All within architecture provided by vendor product
Vendor architecture failed to realize quality requirements.
bought source to incorporate some architetcural elements
within new home-grown Java-EE architecture
Further 10 years of development within new architecture
A Systematic Method for Software Architecture Recovery
An Industrial Case Study
Preparation
Preparation
Obtain access to resources
people
documentation
may be largely incorrect/out of date
source
Scope brieļ¬ng
Case study:
1 hour overview and history presentation by lead architect
Some outdated, very high-level documentation
Full source code
Access to project architects for questions
A Systematic Method for Software Architecture Recovery
An Industrial Case Study
Extraction
Extraction
Extract info from source code
Relies primarily on request traces
generated for
diļ¬€erent access channels
representative use cases
Request traces selected for architectural coverage
diļ¬€erent infrastructural concerns
integration/access channels
diļ¬€erent quality requirements
diļ¬€erent responsibility domain
Partially automated using tracing or proļ¬ling tools.
A Systematic Method for Software Architecture Recovery
An Industrial Case Study
Extraction
Extraction: Case study
A Systematic Method for Software Architecture Recovery
An Industrial Case Study
Abstraction
Abstraction
Used to identify abstractions
Abstractions expose architectural decisions made
e.g. layering, resource pooling, clustering, . . .
Starts with manual inspection of request traces, abstracting
1 request traces to level of granularity,
2 system elements into abstractions with assigned architectural
responsibilities,
3 infrastructural constraints into architectural patterns,
4 processes addressing quality requirements into architectural tactics,
and
5 application components into concepts and constraints within which
they are designed and implemented.
Abstractions captured in SyMAR views.
A Systematic Method for Software Architecture Recovery
An Industrial Case Study
Abstraction
Abstracting Requests into Architectural Responsibilities
and Components
Analyze service requests for responsibilities they address
Responsibilities grouped into responsibility domains
Highest level responsibility domains
= responsibility domains for current LOG
assigned to abstract architectural components
captured in Responsibility Allocation View
A Systematic Method for Software Architecture Recovery
An Industrial Case Study
Abstraction
Abstracting To Architectural Responsibilities: Case
study
<<Responsibilty>>
Persist Domain Objects
<<Responsibilty>>
Encode Business Logic
<<Responsibilty>>
Map Domain Objects
to Database
<<Responsibilty>>
Demarshall Request
PersistenceContextApplicationAdapterClient Application
<<Responsibilty>>
Human adapter
<<Responsibilty>>
Route Request
ServiceBean DatabaseRouter
A Systematic Method for Software Architecture Recovery
An Industrial Case Study
Abstraction
Request Trace Abstraction
Full request traces generally very deep
include requests made to very low level components
abstract by including only requests made to components identiļ¬ed in
previous step.
prune msgs exchanged within responsibility domains
Room for automation
A Systematic Method for Software Architecture Recovery
An Industrial Case Study
Abstraction
Abstracting Request Traces: Case study
Remove all msgs exchanged within responsibility domains
i.e. 2, 3, 5, 6, 7, 8, 9, 16
A Systematic Method for Software Architecture Recovery
An Industrial Case Study
Abstraction
Abstracting Infrastructure into Architectural Patterns
Analyze pruned request traces for msg exchanged patterns
to identify patterns used to constrain infrastructure between
architectural components for LOG.
Examples
Layered architectural pattern
synchronous requests fed down through layers
corresponding responses ravel up the layers.
Controller pattern
requests all disseminate from controller
Pipes & Filters
asynchronous requests along a pipeline.
Blackboard pattern
requests made from various components to blackboard.
Future automation based on Pahlā€™s pattern formalization work?
A Systematic Method for Software Architecture Recovery
An Industrial Case Study
Abstraction
Abstracting to Patterns: Case study
Based on analysis of msg exchange patterns in pruned request trace
Routing Layer
Module Delegate ProcessService
Persistence Layer
Database
Access/Adapter Layer
<<Message-Driven Bean>>
QueueProcessor
<<Servlet>>
CoreRouter
<<Servlet>>
Java-WS
<<webWebServicesClient>>
System Client
Client Layer
Java Swing App Mobile App
Infrastructure Layer
Persistence Context EntityManager O/R Mapper
<<StatelessSessionBean>>
Business Layer
<<Entity>>
<<POJO>>
Concepts for application functionality.
A Systematic Method for Software Architecture Recovery
An Industrial Case Study
Abstraction
Abstracting to Architectural Tactics
Tactics
e.g. thread or connection pooling, database caching, queueing,
interception, . . .
Recovering tactics
exposes architectural decisions on how quality requirements are
concretely addressed
Tactics commonly applied at
access and integration channels
interception points
point cuts for aspects
Also study frameworks for patterns they implement.
A Systematic Method for Software Architecture Recovery
An Industrial Case Study
Abstraction
Abstracting to Architectural Tactics: Case study
Client Layer Access Layer Routing
Layer
Services
Layer
Domain
Layer
Persistence
Layer
<<Tactic>>
Load
Balancing
<<Tactic>>
Encryption
<<Tactic>>
Encryption
<<Tactic>>
Runtime
Lookup
<<Tactic>>
Reference
Caching
<<Tactic>>
Object
Caching
<<Tactic>>
Connection
Pooling
<<Tactic>>
Object-Relational
Mapping
<<Tactic>>
Role-Based
Authorization
<<Tactic>>
Data Access
Authorization
<<Tactic>>
Binary-
Protocol
Mapping
A Systematic Method for Software Architecture Recovery
An Industrial Case Study
Abstraction
Concepts and Constraints for Application Components
Often speciļ¬ed by Software Architecture
e.g. SOA
composable, stateless, discoverable services within pipes and ļ¬lters
infrastructure
Java-EE
enterprise beans as published application components (not directly
accessible)
entities as persisted, transferable domain objects
AUTOSAR
ECUs decoupled through Virtual Function Bus
More abstractly, application functionality in
pure functions
stateless services
stateful objects
Decoupling through contracts in either case.
A Systematic Method for Software Architecture Recovery
An Industrial Case Study
Abstraction
Concepts and Constraints for Application Components
Java-EE architecture evolved from SOA
Process spec ā†’ stateless session beans
object paradigm (stateful SBs) not used
Domain objects as JPA entities.
A Systematic Method for Software Architecture Recovery
An Industrial Case Study
Abstraction
Lower Levels of Granularity
Process repeated āˆ€ architectural components of current LOG
For case study:
3 levels suļ¬ƒcient
3ā€™rd LOG components provided by frameworks
Not components developed for this instance architecture
A Systematic Method for Software Architecture Recovery
Results
Results
Method applied to case study & 2 other industrial architecture
recovery projects
Case study results
Had to traverse ā‰ˆ 5% of source code
2-3 LOGS suļ¬ƒcient for all components.
Method enabled single analyst to obtain architectural description
In all 3 projects
relatively clean separation btw architectural & application
components
Client found resultant architectural description useful.
Several architectural improvement initiatives faclitated through
architectural description.
Limitations:
source code must be available
not suitable for systems for which infrastructural code is extensively
intertwined within application code
A Systematic Method for Software Architecture Recovery
Conclusions
Conclusions
Method usable
for systems with relatively good separation of architectural &
application components.
Output: ISO/IEC/IEEE 42010 compliant architectural description
explicit description of architectural abstractions
patterns, tactics, concepts & constraints for appl components
Tools can be used to reduce manual labour
used only tracing tools in study

More Related Content

What's hot

Unit v -Construction and Evaluation
Unit v -Construction and EvaluationUnit v -Construction and Evaluation
Unit v -Construction and EvaluationDhivyaa C.R
Ā 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
Ā 
EC8791 Requirement-Specifications-Quality assurance techniques
EC8791 Requirement-Specifications-Quality assurance techniquesEC8791 Requirement-Specifications-Quality assurance techniques
EC8791 Requirement-Specifications-Quality assurance techniquesRajalakshmiSermadurai
Ā 
Availability Assessment of Software Systems Architecture Using Formal Models
Availability Assessment of Software Systems Architecture Using Formal ModelsAvailability Assessment of Software Systems Architecture Using Formal Models
Availability Assessment of Software Systems Architecture Using Formal ModelsEditor IJCATR
Ā 
Sa 008 architecture_views
Sa 008 architecture_viewsSa 008 architecture_views
Sa 008 architecture_viewsFrank Gielen
Ā 
Bank managment system
Bank managment systemBank managment system
Bank managment systemDeepam Aggarwal
Ā 
Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization  Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization Ivano Malavolta
Ā 
Towards Software Sustainability Guides for Industrial Software Systems
Towards Software Sustainability Guides for Industrial Software SystemsTowards Software Sustainability Guides for Industrial Software Systems
Towards Software Sustainability Guides for Industrial Software SystemsHeiko Koziolek
Ā 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3SIMONTHOMAS S
Ā 
Migration of Domino Application Landscapesā€¦using cedros Software Analysis & M...
Migration of Domino Application Landscapesā€¦using cedros Software Analysis & M...Migration of Domino Application Landscapesā€¦using cedros Software Analysis & M...
Migration of Domino Application Landscapesā€¦using cedros Software Analysis & M...Philipp Kƶnigs
Ā 
Parallel verification of software architecture design
Parallel verification of software architecture designParallel verification of software architecture design
Parallel verification of software architecture designNacha Chondamrongkul
Ā 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineeringRupesh Vaishnav
Ā 
Aspect Oriented Software Development
Aspect Oriented Software DevelopmentAspect Oriented Software Development
Aspect Oriented Software DevelopmentJignesh Patel
Ā 
Bip Design Flow
Bip Design FlowBip Design Flow
Bip Design FlowSimon Bliudze
Ā 
Lecture 2 (Software Processes)
Lecture 2 (Software Processes)Lecture 2 (Software Processes)
Lecture 2 (Software Processes)Education Front
Ā 
Aspect Oriented Software Engineering
Aspect Oriented Software EngineeringAspect Oriented Software Engineering
Aspect Oriented Software EngineeringAbhay Pai
Ā 
Software Re-Engineering in Software Engineering SE28
Software Re-Engineering in Software Engineering SE28Software Re-Engineering in Software Engineering SE28
Software Re-Engineering in Software Engineering SE28koolkampus
Ā 
[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design LanguageIvano Malavolta
Ā 

What's hot (20)

Unit v -Construction and Evaluation
Unit v -Construction and EvaluationUnit v -Construction and Evaluation
Unit v -Construction and Evaluation
Ā 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
Ā 
EC8791 Requirement-Specifications-Quality assurance techniques
EC8791 Requirement-Specifications-Quality assurance techniquesEC8791 Requirement-Specifications-Quality assurance techniques
EC8791 Requirement-Specifications-Quality assurance techniques
Ā 
Availability Assessment of Software Systems Architecture Using Formal Models
Availability Assessment of Software Systems Architecture Using Formal ModelsAvailability Assessment of Software Systems Architecture Using Formal Models
Availability Assessment of Software Systems Architecture Using Formal Models
Ā 
Software Reengineering
Software ReengineeringSoftware Reengineering
Software Reengineering
Ā 
Sa 008 architecture_views
Sa 008 architecture_viewsSa 008 architecture_views
Sa 008 architecture_views
Ā 
Bank managment system
Bank managment systemBank managment system
Bank managment system
Ā 
Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization  Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization
Ā 
Towards Software Sustainability Guides for Industrial Software Systems
Towards Software Sustainability Guides for Industrial Software SystemsTowards Software Sustainability Guides for Industrial Software Systems
Towards Software Sustainability Guides for Industrial Software Systems
Ā 
CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3CS8494 SOFTWARE ENGINEERING Unit-3
CS8494 SOFTWARE ENGINEERING Unit-3
Ā 
Migration of Domino Application Landscapesā€¦using cedros Software Analysis & M...
Migration of Domino Application Landscapesā€¦using cedros Software Analysis & M...Migration of Domino Application Landscapesā€¦using cedros Software Analysis & M...
Migration of Domino Application Landscapesā€¦using cedros Software Analysis & M...
Ā 
Parallel verification of software architecture design
Parallel verification of software architecture designParallel verification of software architecture design
Parallel verification of software architecture design
Ā 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineering
Ā 
Aspect Oriented Software Development
Aspect Oriented Software DevelopmentAspect Oriented Software Development
Aspect Oriented Software Development
Ā 
Bip Design Flow
Bip Design FlowBip Design Flow
Bip Design Flow
Ā 
Lecture 2 (Software Processes)
Lecture 2 (Software Processes)Lecture 2 (Software Processes)
Lecture 2 (Software Processes)
Ā 
Aspect Oriented Software Engineering
Aspect Oriented Software EngineeringAspect Oriented Software Engineering
Aspect Oriented Software Engineering
Ā 
Software Re-Engineering in Software Engineering SE28
Software Re-Engineering in Software Engineering SE28Software Re-Engineering in Software Engineering SE28
Software Re-Engineering in Software Engineering SE28
Ā 
[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language
Ā 
Sda 2
Sda   2Sda   2
Sda 2
Ā 

Similar to SyMAR - A Systematic Method for software Architecture Recovery

Performancepredictionforsoftwarearchitectures 100810045752-phpapp02
Performancepredictionforsoftwarearchitectures 100810045752-phpapp02Performancepredictionforsoftwarearchitectures 100810045752-phpapp02
Performancepredictionforsoftwarearchitectures 100810045752-phpapp02NNfamily
Ā 
Paper_19-Software_Architecture_Reconstruction_Method_a_Survey
Paper_19-Software_Architecture_Reconstruction_Method_a_SurveyPaper_19-Software_Architecture_Reconstruction_Method_a_Survey
Paper_19-Software_Architecture_Reconstruction_Method_a_SurveyZainab Nayyar
Ā 
Brian muirhead v1-27-12
Brian muirhead v1-27-12Brian muirhead v1-27-12
Brian muirhead v1-27-12NASAPMC
Ā 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIvano Malavolta
Ā 
Architectural design model
Architectural design modelArchitectural design model
Architectural design modelDabobroto Sarkar
Ā 
Technical Architecture
Technical ArchitectureTechnical Architecture
Technical Architecturescmiyer
Ā 
RuaumokoSuite
RuaumokoSuiteRuaumokoSuite
RuaumokoSuiteAthol Carr
Ā 
ASPECT ORIENTED PROGRAMING(aop)
ASPECT ORIENTED PROGRAMING(aop)ASPECT ORIENTED PROGRAMING(aop)
ASPECT ORIENTED PROGRAMING(aop)kvsrteja
Ā 
L06 The Architecting Process
L06 The Architecting ProcessL06 The Architecting Process
L06 The Architecting ProcessHenry Muccini
Ā 
[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
Ā 
DOTNET 2013 IEEE MOBILECOMPUTING PROJECT Model based analysis of wireless sys...
DOTNET 2013 IEEE MOBILECOMPUTING PROJECT Model based analysis of wireless sys...DOTNET 2013 IEEE MOBILECOMPUTING PROJECT Model based analysis of wireless sys...
DOTNET 2013 IEEE MOBILECOMPUTING PROJECT Model based analysis of wireless sys...IEEEGLOBALSOFTTECHNOLOGIES
Ā 
Reference Architecture
Reference ArchitectureReference Architecture
Reference ArchitectureJohan Eltes
Ā 
Software Architectural & Data Design
Software Architectural & Data DesignSoftware Architectural & Data Design
Software Architectural & Data DesignGaurav Bisht
Ā 
Ssad system design
Ssad system designSsad system design
Ssad system designRavi Shekhar
Ā 
Slides 6 design of sw arch using add
Slides 6 design of sw arch using addSlides 6 design of sw arch using add
Slides 6 design of sw arch using addJavid iqbal hashmi
Ā 

Similar to SyMAR - A Systematic Method for software Architecture Recovery (20)

Performancepredictionforsoftwarearchitectures 100810045752-phpapp02
Performancepredictionforsoftwarearchitectures 100810045752-phpapp02Performancepredictionforsoftwarearchitectures 100810045752-phpapp02
Performancepredictionforsoftwarearchitectures 100810045752-phpapp02
Ā 
Paper_19-Software_Architecture_Reconstruction_Method_a_Survey
Paper_19-Software_Architecture_Reconstruction_Method_a_SurveyPaper_19-Software_Architecture_Reconstruction_Method_a_Survey
Paper_19-Software_Architecture_Reconstruction_Method_a_Survey
Ā 
Brian muirhead v1-27-12
Brian muirhead v1-27-12Brian muirhead v1-27-12
Brian muirhead v1-27-12
Ā 
Ibm irl
Ibm irlIbm irl
Ibm irl
Ā 
Unit 2
Unit 2Unit 2
Unit 2
Ā 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
Ā 
Architectural design model
Architectural design modelArchitectural design model
Architectural design model
Ā 
Technical Architecture
Technical ArchitectureTechnical Architecture
Technical Architecture
Ā 
RuaumokoSuite
RuaumokoSuiteRuaumokoSuite
RuaumokoSuite
Ā 
ASPECT ORIENTED PROGRAMING(aop)
ASPECT ORIENTED PROGRAMING(aop)ASPECT ORIENTED PROGRAMING(aop)
ASPECT ORIENTED PROGRAMING(aop)
Ā 
L06 The Architecting Process
L06 The Architecting ProcessL06 The Architecting Process
L06 The Architecting Process
Ā 
[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture
Ā 
DOTNET 2013 IEEE MOBILECOMPUTING PROJECT Model based analysis of wireless sys...
DOTNET 2013 IEEE MOBILECOMPUTING PROJECT Model based analysis of wireless sys...DOTNET 2013 IEEE MOBILECOMPUTING PROJECT Model based analysis of wireless sys...
DOTNET 2013 IEEE MOBILECOMPUTING PROJECT Model based analysis of wireless sys...
Ā 
SA_UNIT_1.pptx
SA_UNIT_1.pptxSA_UNIT_1.pptx
SA_UNIT_1.pptx
Ā 
Reference Architecture
Reference ArchitectureReference Architecture
Reference Architecture
Ā 
Software Architectural & Data Design
Software Architectural & Data DesignSoftware Architectural & Data Design
Software Architectural & Data Design
Ā 
Ssad system design
Ssad system designSsad system design
Ssad system design
Ā 
Slides 6 design of sw arch using add
Slides 6 design of sw arch using addSlides 6 design of sw arch using add
Slides 6 design of sw arch using add
Ā 
DESIGN CONCEPTS
DESIGN CONCEPTSDESIGN CONCEPTS
DESIGN CONCEPTS
Ā 
Ch10
Ch10Ch10
Ch10
Ā 

Recently uploaded

%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
Ā 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburgmasabamasaba
Ā 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
Ā 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
Ā 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
Ā 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
Ā 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
Ā 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
Ā 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
Ā 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
Ā 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
Ā 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2
Ā 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
Ā 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
Ā 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2
Ā 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
Ā 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
Ā 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
Ā 

Recently uploaded (20)

Abortion Pill Prices Tembisa [(+27832195400*)] šŸ„ Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] šŸ„ Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] šŸ„ Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] šŸ„ Women's Abortion Clinic in T...
Ā 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
Ā 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
Ā 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
Ā 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
Ā 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Ā 
Abortion Pills In Pretoria ](+27832195400*)[ šŸ„ Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ šŸ„ Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ šŸ„ Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ šŸ„ Women's Abortion Clinic In Pre...
Ā 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
Ā 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
Ā 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
Ā 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Ā 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
Ā 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
Ā 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
Ā 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
Ā 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
Ā 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
Ā 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
Ā 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
Ā 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
Ā 

SyMAR - A Systematic Method for software Architecture Recovery

  • 1. A Systematic Method for Software Architecture Recovery A Systematic Method for Software Architecture Recovery Fritz Solms SESAr Research Group Dept of Computer Science, University of Pretoria April 30, 2015
  • 2. A Systematic Method for Software Architecture Recovery Introduction Context Ongoing system maintenance ā‡’ architectural drift & erosion ā†‘ complexity, maintenance costs & arch failure & ā†“ understanding ā‡’ accelerates process only deļ¬nitive info on architecture Source artifacts (e.g. code) ā‡’ Architecture Recovery information extraction, abstraction & description āˆ’ā†’ architectural description
  • 3. A Systematic Method for Software Architecture Recovery Introduction Motivation Automated Software Architecture Recovery methods do not currenly expose architectural abstractions suļ¬ƒciently only partially useful Manual Software Architecture Recovery Methods Very labour intensive Do not scale well
  • 4. A Systematic Method for Software Architecture Recovery Introduction Research Question Can we devise a manual (tool assisted) method which can be used to recover software architecture of large industrial systems exposes the required architecural abstractions Are the outputs useful?
  • 5. A Systematic Method for Software Architecture Recovery Introduction What is Software Achitecture? Many diļ¬€erent deļ¬nitions of software architecture Choose one which is consistent with architecture analysis aproaches reference architectures allows for well deļ¬ned boundary btw application and architecture design continuous addition of application functionality within deļ¬ned software architecture. Deļ¬nition Software Architecture is the speciļ¬cation of the software infrastructure addressing non-functional requirements within which application functionality addressing primary functional requirements can be deployed and executeda . aNon-functional reuirements may give rise to sedondary functional requirements
  • 6. A Systematic Method for Software Architecture Recovery Related work Architecture Recovery Output ISO/IEC/IEEE 42010:2011 consensus around requirements for an architectural description does not prescribe content Pinzger & Gall 2002, van Heesch et al 2012 quality & eļ¬ƒciency of architecture decision recovery improved by recovering architectural abstractions ADLs ā†’ very low adoption rate few can capture abstractions explicitly some: patterns/styles tactics: only aspect-oriented ADLs (e.g. AO-ADL) QRs modeled as cross-cutting concerns addressed through tactics modeled as aspects No explicit support for concepts & constraints for application components.
  • 7. A Systematic Method for Software Architecture Recovery SyMAR SyMAR guides software architects through (eļ¬ƒcient) manual recovery of software architecture relies on request tracing as primary tool to discover architecturally signiļ¬cant components. Output ISO/ISEC/IEEE 42010 compliant architectural description containing the architectural abstractions
  • 8. A Systematic Method for Software Architecture Recovery SyMAR Overview of SyMAR <<structured>> abstraction and description identify architectural responsibilities for level of granularity and abstract assign to abstract architectural components abstract infrastructure to architectural style/pattern for component map architectural components onto framework components abstract code addressing quality requirements into tactics abstract application components into concepts and constraints for application components project out request trace views for level of granularity ACCV RTVs FMV RAV SV TV <<structured>> preparation documentation analysis interviews <<structured>> extraction request tracing select component [there are lower level architecturally significant components] [there no more lower level architecturally significant components]
  • 9. A Systematic Method for Software Architecture Recovery An Industrial Case Study Case Study End 2012 ā†’ requested to reverse engineer SA of large corporate banking system > 3 Ɨ 106 lines of own code Original architecture based on SOA framework for banking systems bought from vendor. processes: standard vendor provided processes customized and extended own processes added All within architecture provided by vendor product Vendor architecture failed to realize quality requirements. bought source to incorporate some architetcural elements within new home-grown Java-EE architecture Further 10 years of development within new architecture
  • 10. A Systematic Method for Software Architecture Recovery An Industrial Case Study Preparation Preparation Obtain access to resources people documentation may be largely incorrect/out of date source Scope brieļ¬ng Case study: 1 hour overview and history presentation by lead architect Some outdated, very high-level documentation Full source code Access to project architects for questions
  • 11. A Systematic Method for Software Architecture Recovery An Industrial Case Study Extraction Extraction Extract info from source code Relies primarily on request traces generated for diļ¬€erent access channels representative use cases Request traces selected for architectural coverage diļ¬€erent infrastructural concerns integration/access channels diļ¬€erent quality requirements diļ¬€erent responsibility domain Partially automated using tracing or proļ¬ling tools.
  • 12. A Systematic Method for Software Architecture Recovery An Industrial Case Study Extraction Extraction: Case study
  • 13. A Systematic Method for Software Architecture Recovery An Industrial Case Study Abstraction Abstraction Used to identify abstractions Abstractions expose architectural decisions made e.g. layering, resource pooling, clustering, . . . Starts with manual inspection of request traces, abstracting 1 request traces to level of granularity, 2 system elements into abstractions with assigned architectural responsibilities, 3 infrastructural constraints into architectural patterns, 4 processes addressing quality requirements into architectural tactics, and 5 application components into concepts and constraints within which they are designed and implemented. Abstractions captured in SyMAR views.
  • 14. A Systematic Method for Software Architecture Recovery An Industrial Case Study Abstraction Abstracting Requests into Architectural Responsibilities and Components Analyze service requests for responsibilities they address Responsibilities grouped into responsibility domains Highest level responsibility domains = responsibility domains for current LOG assigned to abstract architectural components captured in Responsibility Allocation View
  • 15. A Systematic Method for Software Architecture Recovery An Industrial Case Study Abstraction Abstracting To Architectural Responsibilities: Case study <<Responsibilty>> Persist Domain Objects <<Responsibilty>> Encode Business Logic <<Responsibilty>> Map Domain Objects to Database <<Responsibilty>> Demarshall Request PersistenceContextApplicationAdapterClient Application <<Responsibilty>> Human adapter <<Responsibilty>> Route Request ServiceBean DatabaseRouter
  • 16. A Systematic Method for Software Architecture Recovery An Industrial Case Study Abstraction Request Trace Abstraction Full request traces generally very deep include requests made to very low level components abstract by including only requests made to components identiļ¬ed in previous step. prune msgs exchanged within responsibility domains Room for automation
  • 17. A Systematic Method for Software Architecture Recovery An Industrial Case Study Abstraction Abstracting Request Traces: Case study Remove all msgs exchanged within responsibility domains i.e. 2, 3, 5, 6, 7, 8, 9, 16
  • 18. A Systematic Method for Software Architecture Recovery An Industrial Case Study Abstraction Abstracting Infrastructure into Architectural Patterns Analyze pruned request traces for msg exchanged patterns to identify patterns used to constrain infrastructure between architectural components for LOG. Examples Layered architectural pattern synchronous requests fed down through layers corresponding responses ravel up the layers. Controller pattern requests all disseminate from controller Pipes & Filters asynchronous requests along a pipeline. Blackboard pattern requests made from various components to blackboard. Future automation based on Pahlā€™s pattern formalization work?
  • 19. A Systematic Method for Software Architecture Recovery An Industrial Case Study Abstraction Abstracting to Patterns: Case study Based on analysis of msg exchange patterns in pruned request trace Routing Layer Module Delegate ProcessService Persistence Layer Database Access/Adapter Layer <<Message-Driven Bean>> QueueProcessor <<Servlet>> CoreRouter <<Servlet>> Java-WS <<webWebServicesClient>> System Client Client Layer Java Swing App Mobile App Infrastructure Layer Persistence Context EntityManager O/R Mapper <<StatelessSessionBean>> Business Layer <<Entity>> <<POJO>> Concepts for application functionality.
  • 20. A Systematic Method for Software Architecture Recovery An Industrial Case Study Abstraction Abstracting to Architectural Tactics Tactics e.g. thread or connection pooling, database caching, queueing, interception, . . . Recovering tactics exposes architectural decisions on how quality requirements are concretely addressed Tactics commonly applied at access and integration channels interception points point cuts for aspects Also study frameworks for patterns they implement.
  • 21. A Systematic Method for Software Architecture Recovery An Industrial Case Study Abstraction Abstracting to Architectural Tactics: Case study Client Layer Access Layer Routing Layer Services Layer Domain Layer Persistence Layer <<Tactic>> Load Balancing <<Tactic>> Encryption <<Tactic>> Encryption <<Tactic>> Runtime Lookup <<Tactic>> Reference Caching <<Tactic>> Object Caching <<Tactic>> Connection Pooling <<Tactic>> Object-Relational Mapping <<Tactic>> Role-Based Authorization <<Tactic>> Data Access Authorization <<Tactic>> Binary- Protocol Mapping
  • 22. A Systematic Method for Software Architecture Recovery An Industrial Case Study Abstraction Concepts and Constraints for Application Components Often speciļ¬ed by Software Architecture e.g. SOA composable, stateless, discoverable services within pipes and ļ¬lters infrastructure Java-EE enterprise beans as published application components (not directly accessible) entities as persisted, transferable domain objects AUTOSAR ECUs decoupled through Virtual Function Bus More abstractly, application functionality in pure functions stateless services stateful objects Decoupling through contracts in either case.
  • 23. A Systematic Method for Software Architecture Recovery An Industrial Case Study Abstraction Concepts and Constraints for Application Components Java-EE architecture evolved from SOA Process spec ā†’ stateless session beans object paradigm (stateful SBs) not used Domain objects as JPA entities.
  • 24. A Systematic Method for Software Architecture Recovery An Industrial Case Study Abstraction Lower Levels of Granularity Process repeated āˆ€ architectural components of current LOG For case study: 3 levels suļ¬ƒcient 3ā€™rd LOG components provided by frameworks Not components developed for this instance architecture
  • 25. A Systematic Method for Software Architecture Recovery Results Results Method applied to case study & 2 other industrial architecture recovery projects Case study results Had to traverse ā‰ˆ 5% of source code 2-3 LOGS suļ¬ƒcient for all components. Method enabled single analyst to obtain architectural description In all 3 projects relatively clean separation btw architectural & application components Client found resultant architectural description useful. Several architectural improvement initiatives faclitated through architectural description. Limitations: source code must be available not suitable for systems for which infrastructural code is extensively intertwined within application code
  • 26. A Systematic Method for Software Architecture Recovery Conclusions Conclusions Method usable for systems with relatively good separation of architectural & application components. Output: ISO/IEC/IEEE 42010 compliant architectural description explicit description of architectural abstractions patterns, tactics, concepts & constraints for appl components Tools can be used to reduce manual labour used only tracing tools in study