Making well-informed software design decisions

Design decisions software architects make directly impact system quality. Real-world systems involve a large number of such decisions, and each decision is typically influenced by others and involves trade-offs in system properties. This paper poses the problem of making complex, interacting design decision relatively early in the project's lifecycle and outlines a search-based and simulation-based approach for helping architects make these decisions and understand their effects.

[1]  Alberto Bacchelli,et al.  On the Impact of Design Flaws on Software Defects , 2010, 2010 10th International Conference on Quality Software.

[2]  Averill M. Law,et al.  Simulation Modeling and Analysis , 1982 .

[3]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[4]  Luca Podofillini,et al.  Genetic Algorithms and Monte Carlo Simulation for the Optimization of System Design and Operation , 2007, Computational Intelligence in Reliability Engineering.

[5]  Nenad Medvidovic,et al.  Recovering Architectural Design Decisions , 2018, 2018 IEEE International Conference on Software Architecture (ICSA).

[6]  Nenad Medvidovic,et al.  Toward Predicting Architectural Significance of Implementation Issues , 2018, 2018 IEEE/ACM 15th International Conference on Mining Software Repositories (MSR).

[7]  Pasqualina Potena Composition and tradeoff of non-functional attributes in software systems: research directions , 2007, ESEC/SIGSOFT FSE.

[8]  Coral Calero,et al.  Architectural Patterns and Quality Attributes Interaction , 2016, 2016 Qualitative Reasoning about Software Architectures (QRASA).

[9]  Marija Mikic-Rakic,et al.  An Extensible Framework for Improving a Distributed Software System's Deployment Architecture , 2012, IEEE Transactions on Software Engineering.

[10]  Peter A. Lindsay,et al.  An Outline of an Architecture-Based Method for Optimizing Dependability Attributes of Software-Intensive Systems , 2006, WADS.

[11]  Jorge Lobo,et al.  Declarative Framework for Specification, Simulation and Analysis of Distributed Applications , 2016, IEEE Transactions on Knowledge and Data Engineering.

[12]  Denis Barthou,et al.  Reducing memory requirements of stream programs by graph transformations , 2010, 2010 International Conference on High Performance Computing & Simulation.

[13]  Andreea Vescan A Metrics-Based Evolutionary Approach for the Component Selection Problem , 2009, 2009 11th International Conference on Computer Modelling and Simulation.

[14]  Nenad Medvidovic,et al.  Automated Extraction of Rich Software Models from Limited System Information , 2016, 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA).

[15]  Sam Malek,et al.  GuideArch: Guiding the exploration of architectural solution space under uncertainty , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[16]  Twan Basten,et al.  Integrated model-driven design-space exploration for embedded systems , 2011, 2011 International Conference on Embedded Computer Systems: Architectures, Modeling and Simulation.

[17]  Oussama Ben Khadra,et al.  Goal-centric traceability for managing non-functional requirements , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[18]  Nenad Medvidovic,et al.  Automated synthesis of domain-specific model interpreters , 2010 .

[19]  Jun Wang,et al.  Generalizing DTW to the multi-dimensional case requires an adaptive approach , 2016, Data Mining and Knowledge Discovery.

[20]  Richard N. Taylor,et al.  Software architecture: foundations, theory, and practice , 2009, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[21]  Felix Bachmann,et al.  Using ArchE in the Classroom: One Experience , 2007 .

[22]  Filip De Turck,et al.  SALSA: QoS-aware load balancing for autonomous service brokering , 2010, J. Syst. Softw..

[23]  Lars Grunske,et al.  Software Architecture Optimization Methods: A Systematic Literature Review , 2013, IEEE Transactions on Software Engineering.

[24]  Steffen Becker,et al.  The Palladio component model for model-driven performance prediction , 2009, J. Syst. Softw..

[25]  Swapna S. Gokhale Software application design based on architecture, reliability and cost , 2004, Proceedings. ISCC 2004. Ninth International Symposium on Computers And Communications (IEEE Cat. No.04TH8769).

[26]  Yuriy Brun,et al.  Automated Analysis and Code Generation for Domain-Specific Models , 2012, 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture.

[27]  Mark Harman,et al.  The Current State and Future of Search Based Software Engineering , 2007, Future of Software Engineering (FOSE '07).

[28]  Nenad Medvidovic,et al.  An End-to-End Domain Specific Modeling and Analysis Platform , 2016, 2016 IEEE/ACM 8th International Workshop on Modeling in Software Engineering (MiSE).