Towards a framework for architectural design decision support Manoj Mahabaleshwar, Garching, 17.02.2017
Overview A framework for architectural knowledge management (domain models, rule engine, and visualization components) - Automatic annotation of architectural-significant elements - Population & recommendation of architecture alternatives and software solutions to realize architectural design decisions - Extract architectural decisions (focus on technical decisions) from issue management system - Classify them as either structural, behavioral, or banned decisions - Extract – who raised the concern, who took the decision and when was the decision made from the issue management system (what is implicit) - Build user profiles based on the above information Use the AKM model, user model, and a set of simple heuristics to predict the possible architectural decisions that will be taken by an architect 170217 Manoj (© Florian Matthes, 2016)
A framework for architectural knowledge management SyncPipes REST API Access control Rule engine (Reasoning knowledge) Model-based expressions Events & notifications Meta-model Static knowledge model Dynamic knowledge model Static knowledge base Dynamic knowledge base Rules manager Value Added Services IR-application Platform Client Apps Source tools Model designer Non-structural data Bhat, M.; Shumaiev, K.; Biesdorf, A.; Hohenstein, U.; Hassel, M.; Matthes, F.: Meta-model Based Framework for Architectural Knowledge Management, SAGRA workshop at European Conference on Software Architecutre 2016, Nov. 28 - Dec. 02, 2016, Copenhagen, Denmark 170217 Manoj (© Florian Matthes, 2016)
Architecture design decision model 170217 Manoj (© Florian Matthes, 2016)
SyncPipes A platform for implementing reusable adapters Tool A Data model A SC KB SC model SyncPipes Configurator SyncPipes Mapper SyncPipes Execution Input configuration Output configuration Sync configuration SyncPipes Synchronizer establish connection concept mapper attribute mapper Get Types and Properties Get Entities Create Entities Update Entities 1 2 3 4 https://github.com/sebischair/syncpipes-server, https://github.com/sebischair/syncpipes-client 170217 Manoj (© Florian Matthes, 2016)
An ontology-based approach for software architecture recommendations https://github.com/sebischair/akre-server, https://amelietor-9f8c3.firebaseapp.com 170217 Manoj (© Florian Matthes, 2016)
Automatic extraction and classification of design decisions from issue management systems Issues Decision detector Decision Decision classifier Structural decision Decision detection model Decision classification model load uses classify Behavioral decision Ban decision Not a decision https://github.com/sebischair/DocClassification 170217 Manoj (© Florian Matthes, 2016)
Next steps (1) Automatic extraction of relationships between design decisions Focus on extracting relationship between design decisions (influences, refinedBy, decomposesInto, compatibleWith, incompatibleWith) Important for Defining dependencies between ADDs Specifying constraints on ADDs Visual representation of constraint graph model Specify constraints using an expression language Modeling constraints required for predication purposes ADTopic ADIssue ADAlternative ADOutcome influences refinedBy decomposesInto forces compatableWith inCompatableWith triggers contains belongsTo priority status preference risk; cost 170217 Manoj (© Florian Matthes, 2016)
Next steps (2) Who did what and when? Existing work on ADD models do not consider user preferences, project context, and heuristics to support the decision making process AIM Extract who took the decision, how long did it take to implement, complexity of tasks involved based on source code changes Extract a decision makers’ preferences related to technologies and types of issues handled to build user profiles. RESULT Combining user profiles with the ADD model should support the recommendation of Who should be responsible to address a specific concern? What is the cost of addressing a specific concern? ? Use issue management system as the main input source Focus on a specific domain (e.g. analytics domain) and system (e.g. component-based) 170217 Manoj (© Florian Matthes, 2016)
ML model for decision detection and classification Big picture Web-based editor Software architects Software developers current project SyncPipes ADD explorer ADD recommender load project recommend alternative architectural solution relationships between ADDs AMELIE ADDs to address similar concerns users who have addressed similar concerns estimated effort to address similar concerns read architecture description read labeled issues annotate text with meta-information apply ML model for new issues load projects SyncPipes Document Classifier Document Annotator Facilitators Domain experts past projects generate uses ML model for decision detection and classification 170217 Manoj (© Florian Matthes, 2016)
Manoj Mahabaleshwar MSc. Research Assistant 18162 Manoj.Mahabaleshwar@tum.de 170217 Manoj (© Florian Matthes, 2016)