Transcript Document
An Automated Approach to Robust Software Design Using Architectural Styles and Patterns By Muzzammil Imam 1 Agenda • Motivation • Related Work • Approach/Contributions • Comparisons • Case Study & Demo • Conclusions/Results 2 Motivation • Software architectures significantly impact software project Success. [SHAW,1] • Creating architectures is one of the most complex activities during software development [GARLAN,2] • “ Software architecting is a key factor in reducing cost, improving quality, timely delivery against schedule, and delivery against requirements.” [Peter Eeles, Senior IT Architect, IBM] • Surprisingly Architecture design is still derived on Architects intuition and experience and there is no methodological or systematic support to guide that process effectively. 3 Related Work • Architectural Styles and Pattern comparison • Pairwise Comparison and Priority Vectors • Weighted Super Matrix • Analytic network process (ANP) 4 Approach / Contributions • Realization of Optimization Problem • Use of Genetic Algorithms for Optimization • Use of Weighted Sum Method for prioritization • Automating the selection of Architectural Patterns • Automating the selection of Architectural Styles (Mixing) 5 Design Process 6 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission. Architectural Patterns A total of 56 Architectural patterns are identified ! Usability Security Maintainability Efficiency Reliability Layers 0 1 2 -1 1 MVC 2 0 -1 -1 0 PAC 1 0 2 -2 0 Reflection 0 0 2 -1 -2 Broker 1 1 1 0 0 7 Architectural Styles There are more than 30 known Architectural styles ! Aggregation Persistence Streaming Pipe & Filter -1 0 2 -1 1 0 ClientServer 2 2 -1 2 2 0 Blackboard 2 2 -1 0 -1 0 Layered 1 0 -1 -1 -1 1 Event-based 2 0 -1 Caching 1 Distribution 2 Secure Communication 0 8 Case studies • Meeting Scheduling System Recommended: PAC, MVC Pattern? Blackboard, Client-Server Style? Dismissed: Layered Style? • Cruise Control System Recommended: Layers Pattern? Event-based Style? Dismissed: Layered Style? 9 Demo 10 Results Recommended Experts ArchOPT Style Pattern Style Pattern Meeting System CS , BB PAC,MVC CS PAC Cruise Control System Event Layers Event Layers Dismissed Experts ArchOPT Style Pattern Style Pattern Meeting System LS Reflection LS Reflection Cruise Control System PF Reflection LS Reflection 11 Conclusion • Much work to be done! • Similar tools would make great impact on the quality of 577 projects in particular and software projects in general. • Genetic Algorithm show promising results by exceeding the expectations in some cases. 12 References 1. SHAW M., CLEMENTS P.: ‘The golden age of software architecture’, IEEE Softw., 2006, 23, (2), pp. 31 –39 2. GARLAN D.: ‘Software architecture: a roadmap’, in F I N K E L S T E I N A . ( E D . ) : ‘The future of software engineering’ (ACM Press, 2000), pp. 91–101 3. Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission. 4. Systematic selection of software architecture styles - IEEE 5. Leveraging Architecture Patterns to Satisfy Quality Attributes http://www.cs.rug.nl/~paris/papers/ECSA07.pdf 6. http://www.users.muohio.edu/burgeje/SHARK_WangBurgeRevised.pdf 7. http://people.eecs.ku.edu/~saiedian/Teaching/Sp11/818/Lectures/compar ing-arch.pdf 8. http://arxiv.org/ftp/arxiv/papers/1005/1005.4271.pdf 9. http://thesai.org/Downloads/Volume2No2/Paper%2017An%20Architectural%20Decision%20Tool%20Based%20on%20%20%20Sce narios%20and%20Nonfunctional%20Requirements.pdf 13 Thank You! 14